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

编写程序,使其从标准输入读取字符,直至文件结尾。对每个字符,程序需检查是否为字母,若是报告在字母表中的位置,如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);
}

------解决方案--------------------
#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;
}

------解决方案--------------------
楼主的问题是那个换行符吧!!
#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);
}

还有楼主注意代码格式啊!