返回列表 发帖

【求助】C语言改错。。。会的帮下。。日后一定好好灌水

1、下面的程序的功能是输入整数n,通过递归调用函数fact()计算并输出n!.请找出其中的三处错误,并修改正确.
#include <stdio.h>
long fact(int n)
{ if (n==1||n==0)
          return (1);
          else
          return (fact(n-1));
}
main()
{ int n;
  printf("Input n: ");
  scanf("%d",n);
  printf("%d,%ld",n,fact);
}
错误1: 将第       行                     修改为                           ,
错误2: 将第       行                    修改为                           ,
错误3: 将第       行                    修改为                           .
2、下列程序的功能是计算矩阵A的主对角线上的元素之和并输出.该程序有三处错误,请指出错误并修改正确.
main()
{ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},i,j;
  int sum=0;
  for (i=1;i<=4;i++)
    for (j=0;j<4;j++);
      if (i==j)
         sum=a[j];
   printf(“sum=%d\n”,sum);
}   
错误1: 将第       行                     修改为                           ,
错误2: 将第       行                    修改为                           ,
错误3: 将第       行                    修改为                           .
3、下面的程序用来求1—100中所有奇数之和,结果放入变量sum中,请找出并修改其中的三处错误.
main()
   {
int i, sum;
sum=1;
        for (i=0;i<100;i+=2)
        sum+=i;
        printf("sum=%f\n",sum);
}
错误1: 将第       行                     修改为                           ,
错误2: 将第       行                    修改为                           ,
错误3: 将第       行                    修改为                           .
4、下面程序的功能是输入100个整数,存入一维数组a[100]中,并将其中的元素按降序排序输出,请指出其中的三处错误并修改正确。
main()
{
int a[100],i,j,t;
for(i=0;i<=100;i++)
scanf("%d",a);
for (i=0;i<99;i++)
for(j=i+1;j<100;j++)
if (a<a[j])
{
t=a;
a[j]=a;
a[j]=t;
}
for (i=0;i<100;i++)
printf("%d ",a);
}

错误1: 将第       行                     修改为                           ,
错误2: 将第       行                    修改为                           ,
错误3: 将第       行                    修改为                           .
5、以下程序的功能是输出Fibonacci数列(这个数列的第一项和第二项都为1,从第三项开始,以后每一项都是它前面两项的和)的前20项。请找出其中的三处错误,并修改正确。
main()
{
int f[20]={1,1};                             
        for(i=0;i<20;i++)
        f=f[i-2]+f[i-1];                          
for(i=0;i<20;i++);
        printf("%9d",f);
}                                                
错误1: 将第       行                    修改为                           ,
错误2: 将第       行                    修改为                           ,
错误3: 将第       行                    修改为                           .
6、下列程序的功能是计算矩阵A的主对角线上的元素之和并输出。该程序有三处错误,请指出错误并修改正确。
main()
{
int a[3][3]={1,3,5,7,9,11,13,15,17},i,j;
  int sum=0;
          for (i=1;i<=3;i++)
          for (j=1;j<3;j++)
          if (i==j)
          sum=a[j];
          printf(“sum=%d\n”,sum);
}   
错误1: 将第       行                    修改为                           ,
错误2: 将第       行                    修改为                           ,
错误3: 将第       行                    修改为                           .
7、比赛有7个评委给每一位参赛者打分,去掉一个最高分和去掉一个最低分,得到该参赛者的平均分。以下程序的功能是求参赛选手的平均分,请找出其中的三处错误,并修改正确。
             main()
{
int i;
float a[7],max, min, aver=0;
for (i=0;i<7;i++)
scanf("%f", a);
max=min=aver=a[0];
for (i=1;i<7;i++);
{
if (max<a)     max=a;
  if (min>a)     min=a;
  aver=a;
}
aver=(aver-max-min)/5;
printf("Mark=%.2f\n",aver);
}
错误1: 将第       行                    修改为                           ,
错误2: 将第       行                    修改为                           ,
错误3: 将第       行                    修改为                           .

返回列表