原题:小写字符的判断
描述
输入一个字符,如果是小写就转成大写输出,如果是其他都直接输出
输入
第1行是一个整数n,表示随后有n组数据。每组数据占一行。
输出
对每组数据,如果是小写就转成大写输出,如果是其他都直接输出,并换行
样例
输入 输出
2
a A
B B
这是我的代码:
#include <stdio.h>
#include <ctype.h>
int main ()
{
int n,i=0;
char ch;
scanf ("%d",&n);
for (i=0;i<n;i++)
{
scanf("%c",&ch);
printf("%c\n",toupper(ch));
}
return 0;
}
以及下面这种:
#include <stdio.h>
#include <ctype.h>
int main ()
{
int n,i=0;
scanf("%d",&n);
char ch;
for(i=0;i<n;i++)
{
ch=getchar();
putchar(toupper(ch));
}
return 0;
}
都无法正常输出:
调试的时候输入n之后就卡住了,没法继续了,这种情况应该怎么办?
scanf ("%d",&n);后需要接收一下回车符
scanf("%c",&ch);后也需要接收一下回车符
代码修改如下
#include <stdio.h>
#include <ctype.h>
int main ()
{
int n,i=0;
char ch;
scanf ("%d",&n);
getchar(); //这里添加一句
for (i=0;i<n;i++)
{
scanf("%c",&ch);
getchar();//这里添加一句
printf("%c\n",toupper(ch));
}
return 0;
}
你是输入一个字符就按回车键了吧?
在scanf("%c",&ch);后加一行getchar();