超凡天赐 发表于 2016-10-21 10:34:34

有一个问题

本帖最后由 超凡天赐 于 2017-1-21 23:05 编辑

#include <stdio.h>

int main() {
    char a;
    int alpha1,alpha2,space,number,others;
    int i=0;
    while((a=getchar())!='\n')
      i++;
    a='\0';
    i=0;
    while(a!='\0')
    {
      if(a>='A'&&a<='Z')
            alpha1++;
      else if(a>='a'&&a<='z')
            alpha2++;
      else if(a==' ')
            space++;
      else if(a>='0'&&a<='9')
            number++;
      else
            others++;
      i++;
    }
    printf("%d %d %d %d %d ",alpha1,alpha2,space,number,others);
    return 0;
}
这是一个统计大小写字母,空格,以及其它字符个数的程序。我认为是a='\0',而不是a='\0',因为我认为a已经被赋予一个字符的值。但是这样在实际运行时并不正确,请问一下为什么???

李星 发表于 2016-10-21 11:53:49

大兄弟    你把alpha1,alpha2,space,number,others;他们赋个初值就ok
{:5_91:}       一起加油

yslieff 发表于 2016-10-23 13:50:19

alpha1,alpha2,space,number,others各赋值0,你在第一个while循环结束之后定义a='\0',那么a就是代表那个‘\n’

超凡天赐 发表于 2016-10-25 10:35:11

yslieff 发表于 2016-10-23 13:50
alpha1,alpha2,space,number,others各赋值0,你在第一个while循环结束之后定义a='\0',那么a就是代表那个‘\n ...

为什么我定义a='\n',a='\n'

yslieff 发表于 2016-10-27 10:32:28

超凡天赐 发表于 2016-10-25 10:35
为什么我定义a='\n',a='\n'

仔细看你自己写的代码

谦虚求学 发表于 2016-11-1 14:26:57

兄弟你写的 是 C语言 代码 里 的第一 个 while循环里面 i=0;什么意思{:5_107:}
页: [1]
查看完整版本: 有一个问题