大哥大姐救救我,C语言问题。

来源:百度知道 编辑:UC知道 时间:2024/06/07 00:55:09
这题的意思是 , 输入一个小写字母, 然后输入一个小写字母后16位的大写字母。
#include"stdio.h"
int main()
{
int a,b,i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%c",&a);
b=a-13;
printf("%c\n",b);
}
return 0;
}
真奇怪 我把循环去掉,就可以用了。一加个循环 全变拉。

应该是犯了忽视了回车键的错误.回车键实际上输入了两个字符,一个被用来确认scanf输入,一个仍保留在输入缓冲区中,会被下一个scanf读到,造成错误.所以在scanf一个字符前,应该清空输入缓冲区.
可以用fflush(stdin);

另外,b=a-13;就能得到想要的大写字母了么?再好好想想