请问为什么输出总是重复else的内容?是找字母的游戏代码

请求大神指点!非常感谢!

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(void){

    char alphabet;
    char c;

    srand(time(NULL));
    c=rand()%26;
    c=c+'A';

    printf("%c",c);

    printf("I have selected a character between A and Z\nTry to guess the character selecter by me!\nWhat is your guess?\n");

    int i;

    for(i=0;i<=100;i++){

        scanf("%c",&alphabet);


        if(c==alphabet){
            printf("Great! Your guess is right!\n");
            }

        else if(c<alphabet){
               printf("Way behind! Please try again.\n");}    
        else{
               printf("Way ahead! Please try again.\n");}
            

    }
        
    
    return 0;
}
 

结果如下:

 

因为scanf也会读取换行符,所以当你输入a+回车的时候,等于会运行两次循环,所以需要先判断一下alphabet是不是'\n',是的话跳过本次循环

for(i=0;i<=100;i++){
        scanf("%c",&alphabet);
        if (alphabet == '\n') {
            continue;
        }

        if(c==alphabet){
            printf("Great! Your guess is right!\n");
        }else if(c<alphabet){
            printf("Way behind! Please try again.\n");
        }
        else{
            printf("Way ahead! Please try again.\n");
        }
}

 

#include <time.h>
#include <stdlib.h>
void main()
{
    printf("I have selected a character between A and Z Try to guess the character selected by me ! What is your guess ?");
    srand((unsigned)time(NULL));//选取种子文件
    char c = rand()%26 + 'A';
    while(true)
    {
        char a;
        scanf("%c",&a);
        if(a < c)
            printf("Way ahead! Please try again.");
        else if(a > c)
            printf("Way behind! Please try again");
        else
        {
            printf("Great! Your guess is right!");
            break;
        }
        getchar();
        printf("\nguess again:");
    }
}

 

不配。

您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632