C语言数组求和

#include<stdio.h>intmain(){intn,a[n],i;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[... #include<stdio.h>
int main()
{
int n,a[n],i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int min,max,sum=0;
max=a[0];
min=a[0];
for(i=0;i<n;i++)
{
if(a[i]>max)
max=a[i];
}
for(i=0;i<n;i++)
{
if(a[i]<min)
min=a[i];
}
for(i=0;i<n;i++)
{

sum=sum+a[i];

}
printf("%d\n",max);
printf("%d\n",min);
printf("%d\n",sum);
return 0;
}

结果可以运行 但是有Segmentation fault:段错误 大佬 是指针有问题吗
展开
 我来答
百度网友c7e1877
2018-04-15 · TA获得超过4670个赞
知道大有可为答主
回答量:4996
采纳率:81%
帮助的人:1450万
展开全部
C语言的静态数组是编译期确定长度,也就是它的长度必需是整数常数、展开为整数的宏或enum、const常量整数这几种情况,不能是变量。如果期望一个数组的长度在运行期确定,则需要用C语言标准库的malloc函数,那个叫动态存储
mafangsan
2018-04-15 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2600万
展开全部
你的n还没输入,你就用n定义数组了,那个数组到底多大?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wawaV3
2018-04-15 · TA获得超过133个赞
知道小有建树答主
回答量:112
采纳率:85%
帮助的人:45.1万
展开全部
声明int a[n]就已经不对了,系统不知道要分配多少内存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pbbh7
2018-04-16 · 超过11用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:33.3万
展开全部
#include
#include
int main()
{
int n;
int val;
int * a;
int sun = 0, i;
printf("请输入数组的长度:");
scanf("%d", &n);
printf("\n");
a = (int *)malloc(n * sizeof(int));//为数组a动态分配内存
for(i = 0; i < n; i++)
{
printf("请输入数组的第%d个元素的值:", i+1);
scanf("%d", &val);
printf("\n");
a[i] = val;
}
for (i = 0; i < n; i++)
{
sun+=a[i];//sun+=a[i]相当于sun=sun+a[i];
}
printf("sun = %d\n",sun);
free(a);//释放a动态分配的内存
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式