如题,题目要求是输入任意一个字母(考虑大小写),输出其字母序号。
第一个程序中,出现的问题是代码可以运行,但是直接输入任意字母结果均是-86,按空格换行后输入完成后,结果大小写字母均是输出大写字母的字母序号。
请问大老们有什么办法能解决以上问题嘛
晕,你怎么getchar和scanf一起用呢?用一个就行啦
int main()
{
int index = 0;
char ch = getchar();
if(ch >='A' && ch <='Z')
index = ch -'A' + 1;
else
index = ch-'a'+1;
printf("%d",index);
return 0;
}
#include<stdio.h>
int main()
{
char num;
scanf("%c",&num);
if(num > 96)
{
printf("%d",num - 96);
}
else
{
printf("%d",num - 64);
}
return 0;
}
自己调试你的程序呀,简单一点就是把ch的内容输出来看结果。高效点的就是打断点,看ch变量的内容变化。
你不是用getchar()函数输入字符吗?怎么后面又写scanf??
#include <stdio.h>
int main()
{
char ch;
int index;
ch = getchar();
if(ch >='a' && ch <='z')
index = ch - 'a' + 1;
else
index = ch - 'A' + 1;
printf("%d", index);
return 0;
}
使用getchar(). 我写了一个正确运行的代码。
希望有帮助到你。
#include <stdio.h>
int main() {
char ch;
int index = 0xFF; // 0xFF 表示无效值
ch = getchar();
if((ch >= 'A' && (ch <= 'Z'))){
index = ch - 'A' +1; }
else if ((ch >= 'a' && (ch <= 'z'))){
index = ch - 'a' +1; }
printf("%d\n", index);
return 0; }