注册 登录
编程论坛 C语言论坛

大佬们,大学生作业求解

他不是恶魔 发布于 2022-12-05 19:37, 1109 次点击
#include <stdio.h>
int main()
{
    char a;
    scanf("%c",&a);
    if(a>='a')
      if(a<='z')
         printf("%c是小写字母",a);
    if(a>='A')
      if(a<='Z')
         printf("%c是大写字母",a);
    if(a<='A'){
        printf("不是英文字母,请重新输入:\n");return main();}
        
   
}
为什么最后那个“不是英文字母,请重新输入”出现了两遍
8 回复
#2
好好刷题2022-12-05 21:21
return main();

这个厉害了
#3
好好刷题2022-12-05 21:43
因为还有一个回车跟在你的输入后面
#4
他不是恶魔2022-12-06 12:52
回复 3楼 好好刷题
是哪个“\n”吗,删掉也是一样的啊
#5
好好刷题2022-12-06 13:00
以下是引用他不是恶魔在2022-12-6 12:52:30的发言:

是哪个“\n”吗,删掉也是一样的啊




不是printf中的那个回车
是你在键盘输入时的那个回车
比如你要输入a,那是不是输入a按键一下,然后再回车按键了一下,scanf的%c就会读到两个字符,而不是一个字符。
#6
好好刷题2022-12-06 13:03
我看你的代码还有不少逻辑上的问题,我冒昧猜的哈。
你的题目是啥?
#7
asdsdgr2022-12-08 15:55
去掉最后一排你看看
#8
xzt1615630022022-12-08 22:04
这一个应该是你需要的吧,大小写转换
#include
int main()
{
char a;
while((a=getchar())!=EOF)
{
getchar();
if('A'<=a&&a<='Z')
a='Z'-a+'A';
putchar(a);
putchar('\n');
}
return 0;
}
#9
s962812022-12-09 00:17
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    char a;
    scanf("\n%c",&a);
    if (a>='a' && a<='z') {
        printf("%c是小写字母",a);
        return 0;
    }
    else if (a>='A' && a<='Z') {
        printf("%c是大写字母",a);
        return 0;
    }
    else {
        printf("不是英文字母,请重新输入:");
        main();
    }
    return 0;
}
1