33,311
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
int main()
{
int a[10], b[2];
int i, j, s = 0;
j = 0;
for(i = 1; i<=19; i = i + 2)
a[j++] = i;
j = 0;
for(i = 1; i <= 10; i++) {
s = s + a[i-1];
if (i % 5 == 0) {
b[j++] = s / 5;
s = 0;
}
}
for(i = 0; i < 10; i++)
printf("%d\t", a[i]);
printf("\n");
for(i = 0; i < 2; i++)
printf("%d\t",b[i]);
printf("\n");
return 0;
}
三个问题:
1. 循环自增有问题,应该是i = i +2;
2. 数组越界,数组a共10个元素,条件是要遍历20个元素,因此越界;
3. 数组b,只需定义2个元素,输出时也只需要输出2个元素;#include<stdio.h>
int main()
{
int i,j=0,a[20],b[4]={0,0,0,0};
for(i=0;i<20;i++)
{
a[i]=2*i+1;//对a元素赋值
b[j]=b[j]+a[i];//对a一个元素赋值后直接加到本组的b上
if((i+1)%5==0)//判断是否够五个一组,如果够5个则执行大括号内操作
{
b[j]=b[j]/5;//求均值
j++;//j++后进行下一组求值
}
}
for(i=0;i<20;i++)
printf("%4d",a[i]);
printf("\n");
for(j=0;j<4;j++)
printf("%4d",b[j]);
printf("\n");
return 0;
}