注册 登录
编程论坛 C语言论坛

函数体变量存储extern使用 看了几遍没有找到问题,请大家看看哪里问题,觉得写的太繁琐也可以提,这道题是计算出现字符数量

加冕 发布于 2018-12-06 19:14, 1575 次点击
#include<stdio.h>
extern  letter  num kon other
login(char c1)
{
    if(c1>='a'&&c1<='z'||c1>='A'&&c1<='Z')
        letter++;
    if(c1>='0'&&c1<='9')
        num++;
    if(c1='')
        kon++;
    else
        other++;
}

main()
{
    int letter,num,kon,other;
    char c1;
    while((c1=getchar())!='\n')
        login(c1);
    printf("%d %d %d %d",letter,num,kon,other);

}
3 回复
#2
kfyniriu2018-12-07 09:08
#include<stdio.h>

extern  int letter=0,num=0,kon=0,other=0;

login(char c1)
{
   
   
    if(c1>='a'&&c1<='z'||c1>='A'&&c1<='Z')
        letter++;
    if(c1>='0'&&c1<='9')
        num++;
    if(c1==' ')
        kon++;
    else
        other++;
   
}

main()
{
    char c1;
    while((c1=getchar())!='\n')
        login(c1);
    printf("%d %d %d %d\n",letter,num,kon,other);
}

extern我不太熟悉,但我认为应该是这样子引用的。
用在变量声明前,告诉编译器,这个变量是在别处定义,引用的。
由于这段代码没有“别处”,所以初始化为0

如果需要在主函数中定义  int letter,num,kon,other;  (根据代码,这里是需要初始化的)
那么extern  int letter=0,num=0,kon=0,other=0;  暂时对主函数是失效的,在login(char c1)函数中是有效的
#3
龙岩花界2018-12-07 19:21
首先,跟上一楼一样,你的全称变量没有赋初值,然后,看得出来,楼主是要统计你所输入的字母,数字,空格这种混合串中的各种类型数量,那么,在定义各种内型变量的时候能否直接混用定义,然后,你这个程序连输入都没有,何谈输出
#4
加冕2018-12-07 20:52
回复 3楼 龙岩花界
在main里不是在while判断时同时运用了ch1=getchar()经行赋值吗
1