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
请讲解一下。
#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值都没有,输入什么啊?先改这里再说吧!