C语言求一维数组中下标为偶数的元素之和,求问我的程序出错在哪里,如何改,为什么?刚学C语言求支援。

#include<stdio.h>
#define m
int main ()
{ int a[m],sum,i;
for(i=0;i<m-1;i+=2)
scanf("%d",&a[i]);
sum=0;
for(i=0;i<m-1;i+=2)
sum=sum+a[i];
printf("the sum is:%d\n",sum);
return 0;
}

你的程序有以下三个错误

1、#define m必须要给m进行定义,这样才能知道定义的的数组有几个元素,比如该题定义的数组有10个元素,那么改成#define m 10

2、scanf("%d",&a[i])前面的for循环应该改为for(i=0;i<m;i++)在进行求和之前,需要把数组当中的值全部输入进去,才能进行下面的步骤。

3、for(i=0;i<m-1;i+=2)应该改为for(i=0;i<m;i+=2),因为只有i=0到i<m之间才有m个元素,而该程序写的for(i=0;i<m-1;i+=2)只有m-1个元素,与题目不符。

以下是改写的的程序以及运行图

扩展资料

1、for语句最简形式为:

for( ; ; )

2、一般形式为:

for(单次表达式;条件表达式;末尾循环体)

3、 for循环中的"单次表达式"、"条件表达式"和"循环体语句"都是选择项, 即可以缺省成只剩下“;”的空语句,。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-13
C语言求一维数组中下标为偶数的元素之和,一组有几个?10个?
这一行要写为:

#define m 10
for(i=0;i<m-1;i+=2)
要改为:
for(i=0;i<m;i+=2)本回答被网友采纳
第2个回答  2017-12-13

#define m 5

你定义的常量是几呢?

追问

m 我想要一个随机的数,当我给数组输入m个值之后,按回车就可以得出结果,m是随机的,但是我不会写。

追答

#define是用宏替换的方法定义一个常量,它不能定义随机数。
要想使用随机数需要在main()内使用c语言随机数函数,比如,srand()或random(),
细节你可以自己去百度,提醒你一下,刚开始学习程序,不要搞得太花哨。

相似回答