鱼C论坛

 找回密码
 立即注册
查看: 2092|回复: 6

[已解决]如何运用循环写

[复制链接]
发表于 2020-10-17 23:19:46 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助啊,,
最佳答案
2020-10-18 03:05:27
本帖最后由 风过无痕1989 于 2020-10-18 03:07 编辑

C语言答案在此
// 输入一个字符,判断其是否是小写字母。如果是小写字母,则输出其大写;否则输出“它不是小写字母"。
// 注意:
// 1、要能循环输入,即解决回车字符的影响。
// 2、要能解决输入多个字符的情况。如输入"iuy"3个字符后再回车,只对输入的"i"(即第一个字符)进行判断,忽略后面的"uy"。

#include<stdio.h>
void main()
{
      char ch,cha;
      char b[10] = "";
      while(1)
      {
            printf("请输入一个字符,");
            scanf("%c",&ch);
            getchar();                                     // 接收回车键
            b[0] = ch;                                    // 将接收到的字符存入字符数组
            ch = b[0];                                     // 将数组的第一个元素赋给变量 ch;
            fflush(stdin);                                 // 清除键盘缓冲区 
            if('a' <= ch && ch <= 'z')
            {
                        cha = ch - 32;
            }
            else
            {
                        printf("%c它不是一个小写字母\n",ch);
                        printf("\n");
                        continue;
            }
            printf("%c的大写字母是:%c\n",ch,cha);
            printf("\n");
      }
}
Screenshot_2020-10-17-23-01-37-102_com.tencent.mm.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-18 01:15:27 | 显示全部楼层
while True:
    str1=input('输入小写字母:')
    if 'a'<=str1[0]<='z':
        print(f'{str1[0]}的大写字母是:{str1[0].upper()}')
    else:
        print(f'{str1[0]}它不是一个小写字母')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-18 03:05:27 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风过无痕1989 于 2020-10-18 03:07 编辑

C语言答案在此
// 输入一个字符,判断其是否是小写字母。如果是小写字母,则输出其大写;否则输出“它不是小写字母"。
// 注意:
// 1、要能循环输入,即解决回车字符的影响。
// 2、要能解决输入多个字符的情况。如输入"iuy"3个字符后再回车,只对输入的"i"(即第一个字符)进行判断,忽略后面的"uy"。

#include<stdio.h>
void main()
{
      char ch,cha;
      char b[10] = "";
      while(1)
      {
            printf("请输入一个字符,");
            scanf("%c",&ch);
            getchar();                                     // 接收回车键
            b[0] = ch;                                    // 将接收到的字符存入字符数组
            ch = b[0];                                     // 将数组的第一个元素赋给变量 ch;
            fflush(stdin);                                 // 清除键盘缓冲区 
            if('a' <= ch && ch <= 'z')
            {
                        cha = ch - 32;
            }
            else
            {
                        printf("%c它不是一个小写字母\n",ch);
                        printf("\n");
                        continue;
            }
            printf("%c的大写字母是:%c\n",ch,cha);
            printf("\n");
      }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-18 07:37:11 | 显示全部楼层
为什么要使用 fflush(stdin) 函数清除键盘缓冲区呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-18 10:25:58 | 显示全部楼层
乐乐学编程 发表于 2020-10-18 07:37
为什么要使用 fflush(stdin) 函数清除键盘缓冲区呢?

因为他的程序要循环使用,若不清除的话,下一次有可能使用到残留在键盘缓冲区里字符。昨晚我在调试程序时就出现了,输入 iuy 时,当次完善地输出了大写字母 I ,可紧接着输出了大写字母 U,于是,就不得不考虑在ch读到数据后,要清除掉本次的输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-18 18:33:06 | 显示全部楼层
for i in "可迭代对象":
    print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-19 23:22:23 | 显示全部楼层
风过无痕1989 发表于 2020-10-18 10:25
因为他的程序要循环使用,若不清除的话,下一次有可能使用到残留在键盘缓冲区里字符。昨晚我在调试程序时 ...

明白了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 00:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表