5个回答
展开全部
#include<stdio.h>
#include<malloc.h>
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<malloc.h>
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;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf("%d",&a[1]);
输入的值将被加入到数组第二个元素。
而你后面的语句却是:
for(i=0;i<1;i++)
{s=s+a[i];}
其中a[0] 就是个空值.相加当然产生个错误值。
改成a[5]更错了, a[5]数组长度5 ,索引是0..4 , a[5]越界了.
记住基础的原则:在局部域定义的变量必须手工初始化。
养成好习惯,谢谢。
输入的值将被加入到数组第二个元素。
而你后面的语句却是:
for(i=0;i<1;i++)
{s=s+a[i];}
其中a[0] 就是个空值.相加当然产生个错误值。
改成a[5]更错了, a[5]数组长度5 ,索引是0..4 , a[5]越界了.
记住基础的原则:在局部域定义的变量必须手工初始化。
养成好习惯,谢谢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先求出一个数组前21个数{1,2,3,5,8,13,21 ... },关系是加1,加2,加3的关系,可以用循环:
int a[21];
int i=0;
int num = 1;
a[0] = 1;
for(i=1;i<21;i++){
a[i] = a[i-1] + num;
num++;
}
然后通过组合求出你所需要的结果。
int a[21];
int i=0;
int num = 1;
a[0] = 1;
for(i=1;i<21;i++){
a[i] = a[i-1] + num;
num++;
}
然后通过组合求出你所需要的结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int i;
int a[3]={1,3,5},s=0;
for(i=0;i<3;i++)
s=s+a[i];
printf("s=%d",s);
}
void main()
{
int i;
int a[3]={1,3,5},s=0;
for(i=0;i<3;i++)
s=s+a[i];
printf("s=%d",s);
}
追问
还有就是如何声明一个数组 其大小为变量?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询