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:段错误 大佬 是指针有问题吗 展开
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:段错误 大佬 是指针有问题吗 展开
4个回答
展开全部
你的n还没输入,你就用n定义数组了,那个数组到底多大?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
声明int a[n]就已经不对了,系统不知道要分配多少内存。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询