C语言,输入一个整数n,然后输入n个数,计算并输出n个数中奇数之和

C语言编程,输入一个整数n,然后输入n个数,计算并输出n个数中奇数之和
我自己编了一个
#include"stdio.h"
void main()
{
int n,s=0,i;
scanf("%d",&n);
int a[n];
scanf("%d",&a[n]);
for(i=1;i<=n;i++)
if(a[i]%2!=0)
s=s+a[i];
else
continue;
printf("%d",s);
}
但是结果是错误的,不知道为什么,望高人指点并给出正确程序,谢谢

1.编译不通过
数组定义时,不能使用变量,即使变量已赋值,所以int a[n];是错的
解决方法,你可以直接定义一个大的数组,比如 int a[100],然后再用n限制输入的个数
2.数组下标是从0~n-1,所以你的for(i=1;i<=n;i++)是错的
应该是for(i=0;i<=n-1;i++)
3.数组元素不能整体赋值,所以你不能只用一句scanf语句
应该利用for循环,循环输入
---------------------------------------------------
程序修改如下:
#include"stdio.h"
void main()
{
int n,s=0,i;
int a[100];
printf("请输入个数:");
scanf("%d",&n);
printf("请输入数据:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
if(a[i]%2!=0)
s=s+a[i];
else
continue;
printf("和为:%d\n",s);
}
----------------------------------
希望楼主好好对比一下,加油!
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-06
a[n]是从0到n-1的数组,i的值设错了
第2个回答  2009-05-06
scanf("%d",&a[n]); 里面应该是a【n-1】吧,注意存在a[0]哦
第3个回答  2009-05-06
数组越界

任意输入n个整数,分别统计奇数的和,奇数的个数,偶数的和,偶数的个数...
= 0) { jh = jh + m; jg++; } else { oh = oh + m; og++; } } \/\/利用循环输入n数并计算 printf("\\n奇数数:%d\\n奇数和:%d\\n偶数数:%d\\n偶数和:%d\\n", jg, jh, og, oh); \/\/打印 return 0;...

C语言编程实现从键盘输入N个整数 分别求出奇数和偶数的和 在线等
void main(){ int a[100],i,item,sum1,sum2;printf("请输入所要输入整数的个数:");scanf("%d",&item);printf("请输入%d个整数:\\n",item);for(i=0;i<item;i++)scanf("%d",&a[i]);sum1=sum2=0;for(i=0;i<item;i++){ if(a[i]==0) continue;\/\/continue是跳过后面语句...

用C语言计算正整数1~n中奇数之和及偶数之和。
printf("请输入n的值:");scanf("%d",&n);for (i=1;i<=n;++i){ if(i & 1)sum1+=i;else sum2+=i;} printf("奇数之和为:%d,偶数之和为:%d\\n",sum1,sum2);return 0;}

C语言程序设计: 任意输入n个整数,分别统计奇数的和、奇数的个数、偶数...
{ int a[100],i,item,sum1,sum2,item1,item2;\/\/sum1,sum2分别储存奇数、偶数之和,item1,item2分别表示奇数、偶数的个数 printf("请输入所要输入整数的个数:");scanf("%d",&item);printf("请输入%d个整数:\\n",item);for(i=0;i<item;i++)scanf("%d",&a[i]);sum1=sum2=item...

c语言 将输入的n个整数按从小到大排序输出,再求出此n个整数中所有奇数和...
define MAX 100 void main(){ int n,num[MAX],i,j,k,a = 0,b = 0;\/\/ 输入 printf("输入总数N:");scanf("%d",&n);for(i=0;i<n;i++){ printf("输入每个数的值Num%d:",i+1);scanf("%d",&num[i]);} \/\/ 排序 for(i=0;i<n-1;i++){ for(j=0;j<n-1-i;j++...

键盘输入n个整数(n值也由键盘输入),统计n个整数中奇数的个数及输出...
int number[100];\/\/输入整数个数printf("Input n:");scanf("%d",&n);\/\/输入整数数值printf("Input numbers:");for(i=0;i<n;i++)scanf("%d",&number[i]);\/\/输出奇数for(i=0;i<n;i++){if(number[i]%2!=0){odd++;if(odd==1)printf("odd: %d",number[i]);elseprintf(...

c语言将从键盘上输入的n(不超过20)个正整数存入数组,分别统计数据中奇数...
printf("请输入n的值:");scanf("%d",&n);a = (int *)malloc(sizeof(int) * n);printf("请输入%d个整数\\n",n);for(int i = 0;i < n;i++){ scanf("%d",&a[i]);if(a[i] % 2)sum_odd++;else sum_even++;} printf("奇数的个数为:%d\\n",sum_odd);printf("偶数的...

C语言 编写一个程序,计算1到正数n之间的奇数之和以及偶数之和。整数n由...
望采纳!include<stdio.h> void main() { int i,n;int result1=0,result2=0;printf("请输入n:");scanf("%d",&n);for(i=0; i<=n; i++) { if(i%2 == 0)result1 += i;else result2 += i;} printf("偶数和为:%d\\n",result1);printf("奇数和为:%d\\n",result2);} ...

编程c++输入一个整数n,输出1—n之间所有奇数的和。
intsum=0;printf("请输入一个大于2的整数:");scanf("%d",&n);l=n;for(;n>=2;n--){ for(i=2;i<n;i++){ if(n%i!=0)\/\/判断其为素数 t=1;else { t=2;break;} } if(t==1){ sum+=n;\/\/printf("%d",n);\/\/输出1-n之间的所有素数 } } printf("1-%d之间的所有素数...

c语言:从键盘任意输入一个整数n,编程计算并输出1-n之间的所有素数之和...
return 1;} void main(){ int n,i,j,sum=2;printf("n=\\n");scanf("%d",&n);printf("小于等于%d的素数\\n",n);if(n>2){ printf("%4d",2);j++;} for(i=3;i<=n;i+=2)if(prime(i)==1){ printf("%4d",i);sum=sum+i;if(j!=0 && ++j%10==0)printf("\\n");} ...

相似回答