数组的存储与输出
#define NUM 5int main()
{
char h;
int i, j;
char ch;
for (i = 0; i < NUM; i++)
{
printf("请输入第%d句话:", i + 1);
for (j = 0; (ch = getchar()) != '\n'; j++);
{
h = ch;
}
h = '\0';
}
printf("你输入了下面%d句话:\n", NUM);
for (i = 0; i < NUM; i++)
{
printf("%s\n", h);
}
return 0;
将用户输入的数据存储的数组 h 中并输出,但是我输出的全是乱码?
以下是输出内容:
请输入第1句话:dasdai
请输入第2句话:dasdioj
请输入第3句话:daudajdo
请输入第4句话:daksdu
请输入第5句话:daidd
你输入了下面5句话:
烫烫烫
烫烫烫?
烫烫烫烫
烫烫烫
烫烫?
本帖最后由 xiaosi4081 于 2020-8-27 14:23 编辑
#define NUM 5
int main()
{
char h;
int i, j;
char ch;
for (i = 0; i < NUM; i++)
{
printf("请输入第%d句话:", i + 1);
while((ch = getchar()) != '\n');
{
h = ch;
}
h = '\0';
}
printf("你输入了下面%d句话:\n", NUM);
for (i = 0; i < NUM; i++)
{
printf("%s\n", h);
}
return 0;
} 本帖最后由 baige 于 2020-8-27 14:45 编辑
#include <stdio.h>
#define NUM 5
int main()
{
char h;
int i, j;
char ch;
for (i = 0; i < NUM; i++) {
printf("请输入第%d句话:", i + 1);
for (j = 0; (ch = getchar()) != '\n'; j++)
{
h = ch;
}
h = '\0';
}
printf("你输入了下面%d句话:\n", NUM);
for (i = 0; i < NUM; i++)
{
printf("%s\n", h);
}
return 0;
}
下面这句话结尾多了个分号,去掉就可以了
for (j = 0; (ch = getchar()) != '\n'; j++);
本帖最后由 baige 于 2020-8-27 14:51 编辑
乱码的原因是你前面都没有赋值,当你输入换行时内层循环结束, 此时对应的j是你每次输入字符个数,对数组的j位置进行赋值为‘\0’, 前面的位置都没有赋值
页:
[1]