int qiuhe(int *arry) //求和函數(shù) 和最大不能超過int,如果需要不受限制,則要改進(jìn)存儲方式
創(chuàng)新互聯(lián)是專業(yè)的遼陽縣網(wǎng)站建設(shè)公司,遼陽縣接單;提供做網(wǎng)站、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行遼陽縣網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
{
int sum=0;
for(;*arry!='\0';arry++){
sum+=*arry;
}
return sum;
}
先說個題外話,您認(rèn)為k=add(i,j)比k=i+j簡單嗎? 回到正題,問題出在scanf,改成scanf("%d%d", i, j);就可以了。如果不改,那么你輸入就應(yīng)該這樣(例如):3,5。輸出結(jié)果:8。也就是說,你必須在輸入時輸入兩個數(shù),并且以“,”隔開。還有個問題,你的getchar不會使程序暫停,因為輸入隊列中的“\"傳入了getchar,你可以再加一個getchar,或者先清空輸入隊列,用scanf輸入函數(shù)使之停頓。也可以,或者改用system("pause")暫停程序。
先獲取數(shù)組長度,然后用for循環(huán),從數(shù)組中獲取值進(jìn)行累加求和。
#include
#include
int main()
{
int n;
int val;
int * a;
int sun = 0, i;
printf("請輸入數(shù)組的長度:");
scanf("%d", n);
printf("\n");
a = (int *)malloc(n * sizeof(int));//為數(shù)組a動態(tài)分配內(nèi)存
for(i = 0; i n; i++)
{
printf("請輸入數(shù)組的第%d個元素的值:", i+1);
scanf("%d", val);
printf("\n");
a[i] = val;
}
for (i = 0; i n; i++)
{
sun+=a[i];//sun+=a[i]相當(dāng)于sun=sun+a[i];
}
printf("sun = %d\n",sun);
free(a);//釋放a動態(tài)分配的內(nèi)存
return 0;
}
擴(kuò)展資料:
一個數(shù)組中的所有元素具有相同的數(shù)據(jù)類型(在C、C++、Java、pascal中都這樣。但也并非所有涉及數(shù)組的地方都這樣,比如在Visual Foxpro中的數(shù)組就并沒這樣的要求)。當(dāng)然,當(dāng)數(shù)據(jù)類型為 Variant 時,各個元素能夠包含不同種類的數(shù)據(jù)(對象、字符串、數(shù)值等等)??梢月暶魅魏位緮?shù)據(jù)類型的數(shù)組,包括用戶自定義類型和對象變量。
如果要用戶輸入的是一個數(shù)組,一般是用一個循環(huán),但是在輸入前也需要固定數(shù)組的大小。
compact跟變長數(shù)組沒有太大的關(guān)系,也應(yīng)該用不到變長數(shù)組。因為一般的傳數(shù)組到函數(shù)中就是傳數(shù)組的地址和元素的個數(shù)的,那只是一個提示,不是要求。
參考資料來源:百度百科-數(shù)組