关于C的小问题,数组a中10个元素之和。
答案:4 悬赏:30
解决时间 2021-03-06 05:08
- 提问者网友:孤笛钟情你
- 2021-03-05 17:16
#include
main()
{
int s=0,a[9],*p,*q;
for(p=a+9,q=a;p>=q;p--)
{
scanf("%d",p);
}
for(p=a+9;p>=q;p--)
{
s=s+*p;
}
printf("%d",s);
}
为什么这个程序输入1 2 3 4 5 6 7 8 9 10之后运行的结果是56而不是55呢?
而要把a[9]改成a[10] 结果才是55?
最佳答案
- 二级知识专家网友:苦柚恕我颓废
- 2021-03-05 18:05
因为你定义一个数组为a[9]他只分配9个内存,也就是0到8
当然存储不了10个数字了
需要a[10]分配10个内存才能存储10个数字
如有帮助,谢谢采纳
全部回答
- 1楼网友:桃花别处起长歌
- 2021-03-05 21:10
定义数组时,可以定义为float型的如:
double n=0;
int i,s=0;
float a[10];
for(i=0;i<10;i++)
{scanf("%lf,",&a[i]);}
- 2楼网友:为你轻狂半世殇
- 2021-03-05 21:04
你输入写的也太复杂了吧!!
你错误的原因是数组越界了,应该开a[10];
我给你写一个正确的代码吧!!
#include
main()
{
int s=0,a[10];
int i;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
s=s+a[i];
}
printf("%d",s);
}
- 3楼网友:堕落奶泡
- 2021-03-05 19:33
我调过 A[9]的时候 A[0]为第一个数 这个数要多家一次
而A[10]的时候 不会多家 第一个 至于是什么我也不知道
我要举报
大家都在看
推荐资讯