greenery 发表于 2020-9-8 11:37:23

为什么用注释里这句,输出时会多个回车?

想输出
231
1231
123
123
321这样子
但注释里那句会输出:
123

123

123

123

43431这样子。。{:10_243:}


#include <stdio.h>
#include <string.h>
#define N 100
int main()
{
        char a,ch;
        int i,j;
        for(i=0;i<5;i++)
        {
                printf("请输入slogan NO.%d:",i+1);
                /*j=0;
                while((a=getchar())!='\n')
                {
                                ;}*/
                for(j=0;(ch=getchar())!='\n';j++)
                {
                        a=ch;
                }

                }
                a='\0';
        int maxi=0,mini=0;

        printf("以下是你输入的slogan:\n");
    for(i=0;i<5;i++)
        {
                if(strlen(a)>strlen(a))
                {
                        maxi=i;
                }
                else if(strlen(a)<strlen(a))
                {
                        mini=i;
                }
                printf("第%d句——%s\n",i+1,a);
        }
printf("最长的slogan是第%d:%s,它一共有%d个字符。",maxi+1,a,strlen(a));
printf("最短的slogan是第%d:%s,它一共有%d个字符。",mini+1,a,strlen(a));

getchar();
        return 0;
}

小名明SIU 发表于 2020-9-8 15:02:05

while((a=getchar())!='\n')。 不管getchar()是不是'\n',都已经保存在a数组中了,也就是说回车也会保存进a中
页: [1]
查看完整版本: 为什么用注释里这句,输出时会多个回车?