求助
#include<stdio.h>#define N 5
#define M 128
int main()
{
char a,ch;
int i,j,count=0;
for(i=0;i<5;i++)
{
printf("请输入第%d句话:",i+1);
while((ch=getchar())!='\n')
{
a=ch;
count++;
}
} //为什么我运行之后打印出来的是乱码,求解;
for(i=0;i<5;i++)
{
if(i==1)
printf("你输入了以下5句话:\n");
for(j=0;j<count;j++)
{
printf("%c",a);
}
printf("\n");
}
return 0;
}
本帖最后由 isdkz 于 2023-4-8 16:00 编辑
你代码的问题在于你使用了一个单独的变量count来记录所有输入行的长度,然后为每一行打印a数组的每一行,直到该行的计数值。
为了解决这个问题,你需要分别跟踪每个输入行的长度,然后在打印a数组的内容时使用这些长度。你可以通过创建一个数组来存储长度来实现这一点。
以下是修改后的代码:
#include<stdio.h>
#define N 5
#define M 128
int main()
{
char a, ch;
int i, j, count; // 添加一个数组来存储每个输入行的长度
for(i = 0; i < N; i++)
{
printf("请输入第%d句话:", i + 1);
count = 0; // 为每行重置计数
while((ch = getchar()) != '\n')
{
a] = ch;
count++; // 增加当前行的计数
}
}
printf("你输入了以下5句话:\n");
for(i = 0; i < N; i++)
{
for(j = 0; j < count; j++) // 使用当前行的计数而不是全局计数
{
printf("%c", a);
}
printf("\n");
}
return 0;
}
{:10_266:}{:10_266:}{:10_266:}咋没内容啊 直接改编辑器编码,utf-8或者gbk 所想如期而遇 发表于 2023-4-8 15:59
咋没内容啊
有内容了
页:
[1]