c语言输入字母 字母表,输入字符,如果是字母则汇报并返回字母在字母表中序号的程序...

本文介绍了一个使用C语言编写的简单程序,该程序能够读取用户输入的字符,并判断是否为字母及其在字母表中的位置。文章指出了一处常见错误——条件判断中的赋值操作而非比较操作,并给出了正确的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入字符,如果是字母则报告并返回字母在字母表中序号的程序

出错,感觉没有进到循环里去。不知道哪里有问题。

#include

int if_char();

void main()

{

int i;

printf("please enter something,if there is a letter,\n");

printf("i'll report it and its position in the alphabet.\n");

printf("enter a '&' to end this programme.\n");

while((i=if_char())!=0)                          //如果是&则结束

{

if(i>0)                            //如果是字母则显示其在字母表中的位置

printf(" and it's %d in the alphabet.\n",i);

}

printf("Bye!\n");

system("pause");

}

int if_char()

{

int ch;

ch=getchar();            //获取字符

if(ch='&')              // 如果是结束符号&则返回0

return 0;

else if((ch>=65&&ch<=90)||(ch>=97&&ch<=122))   //如果是字母则进入字母大小写判别

{

if(ch>=65&&ch<=90)        //如果是小写则返回字母ASCII码减64,(a返回1)

{

printf("%c is a letter",ch);

return ch-64;

}

else                 //如果是大写则返回字母ASCII码减96,(A返回1)

{

printf("%c is a letter",ch);

return ch-96;

}

}

else                                             //非字母返回-1

return -1;

}

------解决方案--------------------

lz把==和=搞混了

#include 

int if_char();

void main()

{

int i;

printf("please enter something,if there is a letter,\n");

printf("i'll report it and its position in the alphabet.\n");

printf("enter a '&' to end this programme.\n");

while((i=if_char())!=0)                          //如果是&则结束

{

if(i>0)                            //如果是字母则显示其在字母表中的位置

printf(" and it's %d in the alphabet.\n",i);

}

printf("Bye!\n");

system("pause");

}

int if_char()

{

int ch;

ch=getchar();            //获取字符

if(ch=='&')              // 如果是结束符号&则返回0

return 0;

else if((ch>=65&&ch<=90)

------解决方案--------------------

(ch>=97&&ch<=122))   //如果是字母则进入字母大小写判别

{

if(ch>=65&&ch<=90)        //如果是小写则返回字母ASCII码减64,(a返回1)

{

printf("%c is a letter",ch);

return ch-64;

}

else                 //如果是大写则返回字母ASCII码减96,(A返回1)

{

printf("%c is a letter",ch);

return ch-96;

}

}

else                                             //非字母返回-1

return -1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值