C语言程序改错(三)
(十一)功能:求1到10的阶乘的和。
#include "stdio.h"
main()
{
int i;
float t,s=0;
float fac(int n);
/**********ERROR**********/
for(i=1;i<10;i++)
/**********ERROR**********/
s=fac(i);
printf("%f\n",s);
}
float fac(int n)
{
/**********ERROR**********/
int y=1;
int i;
for(i=1 ;i<=n;i++)
y=y*i;
/**********ERROR**********/
return;
}
【参考答案】
for(i=1;i<=10;i++)
for(i=1;10>=i;i++)
for(i=1;i<11;i++)
for(i=1;11>i;i++)
【参考答案】
s=s+fac(i);
s+=fac(i);
s=fac(i)+s;
【参考答案】
float y=1.0;
float y=1;
(十二)
功能:打印出杨辉三角形(要求打印出10行).
#include "stdio.h"
main()
{
int i,j;
int a[10][10];
printf("\n");
/**********ERROR**********/
for(i=1;i<10;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=1;i<10;i++)
/**********ERROR**********/
for(j=1;j<10;j++)
/**********ERROR**********/
a[i][i]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
【参考答案】
for(i=0;i<10;i++)
for(i=0;i<=9;i++)
【参考答案】
for(j=1;j<i;j++)
【参考答案】
a[i][j]=a[i-1][j-1]+a[i-1][j];
(十三)功能:编写函数fun求20以内所有5的倍数之积。
#define N 20
#include "stdio.h"
main()
{
int sum;
sum=fun(5);
printf("%d以内所有%d的倍数之积为:%d\n",N,5,sum);
}
int fun(int m)
{
/**********ERROR**********/
int s=0,i;
for(i=1;i<N;i++)
/**********ERROR**********/
if(i%m=0)
/**********ERROR**********/
s=*i;
return s;
}
【参考答案】
int s=1,i;
【参考答案】
if(i%m==0)
【参考答案】
s=s*i
s=i*s
s*=i
(十四)功能:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。
max代表最高分,min代表最低分,avg代表平均分。
#include "stdio.h"
main( )
{
int i;
/***********ERROR***********/
float a[8],min,max,avg;
printf("input 10 score:");
for(i=0;i<=9;i++)
{
printf("input a score ofstudent:");
/***********ERROR***********/
scanf("%f",a);
}
/***********ERROR***********/
max=min=avg=a[1];
for(i=1;i<=9;i++)
{
/***********ERROR***********/
if(min<a[i])
min=a[i];
if(max<a[i])
max=a[i];
avg=avg+a[i];
}
avg=avg/10;
printf("max:%f\nmin:%f\navg:%f\n",max,min,avg);
}
【参考答案】
floata[10],min,max,avg;
【参考答案】
scanf("%f",&a[i]);
scanf("%f",a+i);
【参考答案】
max=min=avg=a[0];
【参考答案】
if (min>a[i])
if (a[i]<min)
(十五)功能:编写函数fun计算下列分段函数的值:
x*20 x<0且x≠-3
f(x)= sin(x) 0≤x<10且x≠2及x≠3
x*x+x-1 其它
#include "math.h"
#include "stdio.h"
float fun(float x)
{
/**********ERROR**********/
float y
/**********ERROR**********/
if (x<0 || x!=-3.0)
y=x*20;
else if(x>=0 && x<10.0 && x!=2.0 &&x!=3.0)
y=sin(x);
else y=x*x+x-1;
/**********ERROR**********/
return x;
}
main()
{
float x,f;
printf("Input x=");
scanf("%f",&x);
f=fun(x);
printf("x=%f,f(x)=%f\n",x,f);
}
【参考答案】
float y;
【参考答案】
if (x<0&& x!=-3.0)
【参考答案】
return y;