【发布时间】:2011-12-18 21:04:14
【问题描述】:
练习说“用两个 int 数组和 k 参数创建一个函数,k 是它们的大小。该函数应该返回另一个数组(大小 k),其中每个元素都是相同位置的两个数组的总和。那就是我写的,但它崩溃了。我必须用指针来做吗?
#include <stdio.h>
#include <stdlib.h>
void sumarray(int k,int A[k],int B[k]){
int sum[k],i;
for(i=0;i<k;i++){
sum[i]=A[i]+B[i];
printf("sum[%d]=%d\n",i,sum[i]);}
}
main(){
int i,g,a[g],b[g];
printf("Give size of both arrays: ");
scanf("%d",&g);
for(i=0;i<g;i++){
a[i]=rand();
b[i]=rand();
}
sumarray(g,a,b);
system("pause");
}
示例:如果我有 A={1,2,3,4} 和 B={4,3,2,1},程序将返回 C={5,5,5,5)。
【问题讨论】:
-
它在崩溃之前能走多远?
-
什么是崩溃?错误信息是什么?输入什么?
-
a和b应该是指针:int *a, *b,然后用malloc或calloc初始化数组。 -
@Oli @David 它甚至没有开始。我得到一个黑屏,我得到一个错误消息,程序结束。