#include<stdio.h>
int main()
{
int b,k,sum;
printf("請輸入正整數個數:\n");
scanf("%d",&k);
int a[k];
printf("請輸入正整數:\n");
for(b=0;b<=(k-1);b++)
{
scanf("%d",&a[b]);
if(a[b]%2!=0) sum=sum+a[b] ;
}
printf("%d",sum);
return 0;
}
uj5u.com熱心網友回復:
陣列長度不要用變數,或者你可以用動態申請記憶體uj5u.com熱心網友回復:
什么意思?新手不是很懂uj5u.com熱心網友回復:
C語言陣列長度要求是常量值,scanf("%d",&k);
int a[k];
這樣是不行的
uj5u.com熱心網友回復:
那我應該怎么樣表示輸入數量?,我上次也用這樣的方法,沒有出現過這樣的錯誤的呀uj5u.com熱心網友回復:
有的編譯器支持那種陣列定義的方式uj5u.com熱心網友回復:
把你運行的截屏看一下uj5u.com熱心網友回復:
int a[k];改成 int a[100]; //陣列長度用常量
或者改成
int *a = (int*)malloc(sizeof(int)*k); //動態申請記憶體 ,最后記得free(a)
另外,sum沒有初始化,在for回圈前加一句
sum=0;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/60184.html
標籤:C語言
