为何我的第一个字母输不出
许多余 人气新星 2017-02-28 21:17:35
2522 2 0

#include<stdio.h>

main()

{

char a[100];

char c;

int i=0,n,b=0,s=0;



scanf("%c",&c);


while((c=getchar())!='\n')

{

a[i++]=c;

if(c>='a' &&c<='z') s++;

if(c>='A' &&c<='Z') b++;

}

n=i;

for(i=0;i<n;i++)  putchar(a[i]);

putchar('\n');

printf("大写字母个数为%d\n",b);

printf("小写字母个数为%d",s);


}


问题来自: 字符数组

共 2 个回答

    最佳答案

    qqq 资深元老 助教 2637天前

    你多了一句scanf。。

    你既然已经用getchar获取字符了,为什么还要先用scanf呢?你的第一个字符被scanf获取赋值给了变量c,然后在刚进入while循环时又用getchar获取了第二个字符赋值给c,这时第一个字符就被第二个字符覆盖了啊,所以第一个字符没有进行大小写判断而且也输不出来。

您还没有登录,所以不能回复该问题