Scanf(“%d”,&a[i]);
}
2)在main函数中,调用它,完成对数组n个元素的输入输出。
Intmain()
{intarray[100],n;
While(scanf(“%d”,&n)!
=EOF)
{
Input(array,n);
Output(array,n);
}
Return0;
}
3582:
步骤:
1)定义一个计算两个数和、差的函数sumDiff(intop1,intop2,int*pSum,int*pDiff),功能是求两个数op1、op2的和、差,其中*psum和*pdiff是计算得出的和与差,代替return返回值,故函数不需要返回任何值了。
VoidsumDiff(intop1,intop2,int*pSum,int*pDiff)
{//op1、op2是要计算的两数
*pSum=op1+op2;//pSum是main()函数中变量的地址,故修改的是main()函数中变量的值
……
}
2)在main函数中,调用它,计算输入的任意两个数的和与差。
Intmain()
{inta,b,s,d;
While(scanf(“%d%d”,&a,&b)!
=EOF)
{
sumDiff(a,b,&s,&d);
printf(“sum=%d,diff=%d\n”,s,d);
}
Return0;
}
第十二次实验:
函数之二
2452:
步骤:
3)定义判断素数函数intprime(intx):
当x是素数时,函数返回1,否则返回0.
4)main函数:
多组输入n、m,对n-m间的每一个数i,调用函数prime(x)判断是否是素数,若是就输出。
代码框架:
intprime(intx)//(循环从2到sqrt(x),不能从2到x-1)
{
……
}
intmain()
{intm,n,i;
while(scanf("%d%d",&n,&m)!
=EOF)//输入n、m值
{
for(i=n;i<=m;i++)
{
If()
Printf(“%d”,i);.....//输出素数
}
printf(“\n”);
}
return0;
}
2482:
步骤:
3)定义递归函数intage(intn,intm,intk),功能是求第n个人的岁数,并返回此岁数。
函数:
intage(intn,intm,intk)
{intresult;
if(n==1)
result=k;
else
result=age(n-1,m,k)+m;
returnresult;
}
4)定义main函数,多组输入,输出第n个人的岁数。
3574:
步骤:
1)定义函数intreverse(intn),功能返回n的逆序数。
函数:
intreverse(intn)
{intresult=0;
do{……
………………
}while(….!
=0);
returnresult;
}
2)定义main函数,多组输入n,输出结果。
3571:
步骤:
1)定义递归函数intfib(intn),,功能是求返回第n项Fibonacci数。
函数:
intfib(intn)
{inti,f1,f2,item,result;
if(n==1||n==2)
result=1;
else
result=fib(n-1)+fib(n-2)
returnresult;
}
2)定义main函数,多组输入,输出结果。
intmain()
{int….
while(scanf(……)!
=EOF)
{
for(i=m;i<=n;i++)
printf(“%5d“,fib(i))
printf(“\n”);
}
第十一次实验:
函数之一
3565:
步骤:
1)定义符号函数sign(intn)
2)main函数:
输入x,调用函数sign(x)。
代码框架:
intsign(intn)
{intm;
........
returnm;
}
intmain()
{intx,y;
while(scanf("%d",&x)!
=EOF)//输入x值
{
y=sign(x);
.....//输出y的值
}
return0;
}
3566:
步骤:
1)定义函数max(intx,inty),功能是求两个数x、y中最大数的,并返回最大数。
函数:
intmax(intx,inty)
{intz;
if(x>y)z=x;
elsez=y;
returnz;
}
2)main函数:
定义三个变量a、b、c和m、多组测试输入三个整数;两次调用函数,就可得到最大数了。
3567:
步骤:
1)定义判断素数的函数intprime(intx),若是素数返回1,否则返回0。
2)主函数:
从100-200每个数都通过调用函数prime(i)来判断是否素数。
intmain()
{inti;
For(I=100;I<200;i++)
If(prime(i)==1)
Printf(“%5d”,i);
}(以上代码未处理换行)
3568:
步骤:
1)定义求n!
函数intfact(intn),函数返回n!
值。
(既可用整数表阶乘也可用浮点表阶乘)
2)主函数:
从1-10每个数都通过调用函数fact(i)来求i!
,并累加求和。
由于阶乘和较大,故用浮点表示和。
intmain()
{inti;floatsum;
For(I=1;I<=10;i++)
Sum+=fact(i);
Printf(“%f\n”,sum);
}
3569:
步骤:
1)定义函数intfn(inta,intn),返回a…a(n个a)。
2)主函数核心语句:
循环i=1到n,s+=fn(a,i)。
3570:
步骤:
1)定义函数intcountdigit(intnumber,intdigit),返回number中数字digit的个数
关键算法:
取出number的每一位,若等于digit,则计数count加1,最后返回count。
2)主函数核心语句:
输入x,个数n=countdigit(x,2)。
3571:
步骤:
1)定义函数intfactorsum(intnumber),返回number的因子和。
关键算法:
i从1到number-1,若i是number的因子,则累加和sum;最后返回sum。
2)主函数main(),核心语句:
i从m到n,若I==fact(i),则输出i。
3573:
步骤:
1)定义函数intis(intnumber),若数字立方和等于本身,返回1,否则返回0。
关键算法:
累加number的每一位数字,若和等于number,则返回1,否则返0。
2)主函数main(),核心语句:
i从m到n,若I==is(i),则输出i。
第十次实验:
数组
3552:
步骤:
1)定义数组a[10][10],s[10]及相关变量
2)多组测试:
输入m,n;二重for循环输入数组a的每一个元素(scanf(“%d”,&a[i][j]),注意%d后不加空格)。
3)对于第一行a[0]的每个元素a[0][j](j=0-n-1)都和第m-1行对应元素交换。
4)对每一行(i=0---m-1),计算元素和并存入数组s[i]中
5)输出数组a的每一行(i=0----m-1)元素及s[i],并换行。
3553:
步骤:
1)定义数组a[10][10]及相关变量
2)多组测试:
输入n;二重for循环输入数组a的每一个元素(scanf(“%d”,&a[i][j]),注意%d后不加空格)。
3)主对角线元素:
a[i][i],副对角线a[i][n-1-i]。
3555:
步骤:
1)定义数组a[6][6]、标记是否上三角变量flag、及相关变量
2)多组测试:
输入n;flag=1;二重for循环输入数组a的每一个元素
3)对于主对角线以下每个元素进行判断,如果不为零的,则flag=0同时跳出循环。
4)循环结束后判断flag值,若为1输出“YES”否则“No”
3556:
步骤:
1)定义数组a[6][6]、是否鞍点标记flag及相关变量
2)多组测试:
输入n;二重for循环输入数组a的每一个元素
3)对于每一行i:
flag=1,找最大值max并记下其列下标cols,行下标lines;接着对于cols列所有其它元素,若小于max则{flag=0,break;},退出内层循环;当cols列数都判断完毕后,若flag还为1则退出循环变量为i的外层循环。
4)若flag为1,输出lines、cols,否则输出”No”
3561:
步骤:
1)定义字符数组str[80]、是否回文标记flag、字符长度len及相关变量
2)多组测试:
输入字符串、flag=1;
3)计算输入字符串长度len,
4)i从0到len/2:
若str[i]!
=str[len-1-i],则flag=0;
5)循环结束后,判断flag值,若为1输出“Yes\n”,否则”No\n”
3893:
步骤:
1)定义整型数组a[20]及相关变量
2)多组测试:
输入n和n个整数;
3)先temp变量临时保存a[0]的值,
4)i从0到n-2:
后面的元素往前移,a[i]=a[i+1];
5)循环结束后,把temp值存入a[n-1]中
3895:
步骤:
1)定义整型数组a[20]及相关变量
2)多组测试:
输入n和m
3)二维数组每个元素a[i][j]值为:
i*4+j+1];
4)输出数组的每一个元素
3900:
步骤:
1)定义字符数组a[100]及相关变量
2)多组测试:
输入字符串a
3)对数组每个元素a[i],若是字母,字母计数加1…….
4)输出统计结果。
3905:
步骤:
1)定义字符数组str[100]及相关变量
2)多组测试:
输入字符串str
3)若str[0]为小写字母,则变大写
4)从str[1]开始,每个字符,判断是否是单词第一个字母(当前是小写字母且前一个是空格,即str[i]是字母&&str[i-1]==’‘
5)输出字符串str.