C语言程序题1

来源:百度知道 编辑:UC知道 时间:2024/05/01 14:14:16
C语言程序题1
请讲解一下。
#include<stdio.h>
void main()
{int i,k,s=0,a[10];
while(scanf("%d",&a[k])a[k]>0)s=s+a[k++];
for(i=0;i<k;i++)printf("%d\n",a[i]);
printf("%d\n",s);
}
#include<stdio.h>
void main()
{int i,k,s=0,a[10];
while(scanf("%d",&a[k]),a[k]>0)s=s+a[k++];
for(i=0;i<k;i++)printf("%d\n",a[i]);
printf("%d\n",s);
}
运行时输入 1 2 3 -4

你的k没有赋初值,
所以a[k]这个下标,极可能越界。

这个改就可以了:
int i,k=0,s=0,a[10];//给k 赋初值0

下面的代码已经编译运行确认了:
#include<stdio.h>

void main()
{
int i,k=0,s=0,a[10];
while(scanf("%d",&a[k]),a[k]>0)s=s+a[k++];
for(i=0;i<k;i++)printf("%d\n",a[i]);
printf("%d\n",s);
}

运行时输入 1 2 3 -4
输出:
1
2
3
-4
1
2
3
6
Press any key to continue

哪里看不懂啊!

我在线和你交谈吧!

我看了一下

你的程序有问题

scanf("%d",&a[k]) k的值是多少?

这样不好输入的

k值都没有,输入什么啊?先改这里再说吧!