更新时间2019-11-01 20:33:09
#include<stdio.h>
int main()
{
int i;
char a[100]={0};
printf("输入数据,当输入#时结束");
i=0;
do{
printf(" 第%d个数",i+1);
scanf("%d",&a[i]);
i++;
}
while(a[i]!='#');
return 0;
}
为啥不行呢?
这个是你基本概念的问题了,%d输入只能用于整形,也就是输入只能是数字及头上的+/-,输入其它字符直接会出错的,你可以对char 赋整形的值,它范围只能是-128~+127
你用%d输入,那么 while(a[i]!='#');中,有两个问题
1。你的i已加1,那么实际要判while(a[i-1]!='#');
2。你的a[i].只有当输入35时(#的ASCII码)你的程序才会结束