写的太乱了,函数名和变量名最好不要一样,很乱啊,而且你传进来的参数是x的值,里面又用n,最严重是算法本身就错了
创新互联建站是一家集网站建设,石门企业网站建设,石门品牌网站建设,网站定制,石门网站建设报价,网络营销,网络优化,石门网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
int fac(int n)
{
if (n == 0 || n == 1)
return 1;
return n * fac(n-1);
}
#includestdio.h
#define N 100
void fun(int *a,int n) { int i,k; k=a[n-1]; for ( i=n-1;i0;i-- ) a[i]=a[i-1]; a[0]=k; }
void main() { int a[N],n,m,i;
printf("请输入n: "); scanf("%d",n); if ( n=N ) n=N;
printf("请输入%d个整数: ",n); for ( i=0;in;i++ ) scanf("%d",a[i]);
printf("请输入后移数据个数: "); scanf("%d",m);
for ( i=0;im;i++ ) fun(a,n);
for ( i=0;in;i++ ) printf("%d ",a[i]); printf("\n");
}
#includestdio.h
void studentaver(double c[3][2])
{
int i,j;
double sum;
for(i=0;i3;i++)
{
for(j=0,sum=0;j2;j++)
{
sum+=c[i][j];
}
printf("第 %d 个:%lf",i+1,sum/2);
printf("\n");
}
}
void subjectaver(double c[3][2])
{
int i,j;
double sum;
for(i=0;i2;i++)
{
for(j=0,sum=0;j3;j++)
{
sum+=c[j][i];
}
printf("第 %d 个科目:%lf",i+1,sum/3);
printf("\n");
}
}
int main()
{
double c[3][2],sum;
int p,q,i,j;
printf("输入学生的成绩\n");
for(i=0;i3;i++)
{
for(j=0;j2;j++)
{
scanf("%lf",c[i][j]);
}
}
printf("每个学生的平均分是:\n");
studentaver(c);
printf("每个科目的平均分\n");
subjectaver(c);
return 0;
}
指一下楼主的问题:1、sum并没有赋初值清零,这是初学者易错的地方;2、还有并不是sum加完一个数后就输出的,楼主你自己看你的代码,在调用函数里的第二层循环,你加一次就输出一次,这是错的;3、在主函数里的第二层函数中,应该是执行2次,而楼主的却是小于等于2,执行了3次!从0、1、2一共三次,难度楼主连调试能力都没有吗?