C语言编程,从键盘输入任意一个大写英文字母,求出它在26个字母表中的位置。求问我的程序为什么不对。
#include<stdio.h>intmain(){inta;a=getchar();a=a-96;printf("%d",a);return0;}...
#include<stdio.h>
int main()
{
int a;
a=getchar();
a=a-96;
printf("%d",a);
return 0;
} 展开
int main()
{
int a;
a=getchar();
a=a-96;
printf("%d",a);
return 0;
} 展开
2个回答
展开全部
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int i;
char zf1,zf2,zf[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
printf(" 请输入一个字符:");
zf1=getchar();
if(isupper(zf1))
{
zf2=zf1+32;
for(i=0;i<26;i++)
if(zf2==zf[i])
printf(" 字符 %c 在英文字母中的位置是:第 %d 个\n",zf1,i+1);
}
else
for(i=0;i<26;i++)
if(zf1==zf[i])
printf(" 字符 %c 在英文字母中的位置是:第 %d 个\n",zf1,i+1);
return 0;
}
展开全部
更多追问追答
追问
抱歉刚学C语言,第一次编程,a=a-96那里还是不太懂,能解释一下吗?
追答
一开始a的类型就错了,应定义为字符型,既然是字符型,那么a=a-96,就变成前面第96个字符,早就出了大写字母的范围了,大写字母只有26个,哪来的减96?而且退一万步讲,就算你认为你是想减首字母前一个字符对应的数值,ASCII码表中A对应的数值是65,小写字母a对应的才是97,就是减也不该减96。当然,由于定义就错得比较离谱,这个错误就不算什么了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询