读书人

编写程序使其从标准输入读取字符直

发布时间: 2012-04-13 13:50:24 作者: rapoo

编写程序,使其从标准输入读取字符,直至文件结尾。对每个字符,程序需检查是否为字母,若是报告在字母表中的位置,如C和c均为3.若不是字母,位置置为-1.
以下程序不管是不是字母,均输出-1.不知怎么回事?

#include<stdio.h>
int number(char );
void main()
{char ch;
printf("Enter the letter: ");
while((scanf("%c",&ch)==1)&&(ch!='\0'))
number(ch);
}

int number(char ch)
{int num;
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
{if(ch>='a'&&ch<='z')
printf("%c,its number is %d.\n",ch,ch-96);
else
printf("%c,its number is %d.\n",ch,ch-64);}
else
printf("%c,its number is -1.\n",ch);
}

[解决办法]

C/C++ code
#include<stdio.h>int number(char );void main(){    char ch;    printf("Enter the letter: ");    while((scanf("%c",&ch)==1)&&(ch!='\0'))    {        number(ch);        fflush(stdin);    }}int number(char ch){    int num;if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z'){    if(ch>='a'&&ch<='z')        printf("%c,its number is %d.\n",ch,ch-96);    else        printf("%c,its number is %d.\n",ch,ch-64);}    else        printf("%c,its number is -1.\n",ch);return 0;}
[解决办法]
楼主的问题是那个换行符吧!!
C/C++ code
#include<stdio.h>int number(char ch);void main(){     char ch;     printf("Enter the letter: ");     while((scanf("%c",&ch)==1)&&(ch!='\0'))     number(ch);}int number(char ch){     int num;     if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')     {          if(ch>='a'&&ch<='z')                printf("%c,its number is %d.\n",ch,ch-96);          else                printf("%c,its number is %d.\n",ch,ch-64);     }     else if(ch=='\n')      //判断一下是否是换行符         printf("");     else         printf("%c,its number is -1.\n",ch);} 

读书人网 >C语言

热点推荐