| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 126 人关注过本帖, 1 人收藏
标题:函数体变量存储extern使用 看了几遍没有找到问题,请大家看看哪里问题,觉得 ...
只看楼主 加入收藏
加冕
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2018-11-24
结帖率:57.14%
  已结贴   问题点数:20  回复次数:3   
函数体变量存储extern使用 看了几遍没有找到问题,请大家看看哪里问题,觉得写的太繁琐也可以提,这道题是计算出现字符数量
#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);

}
2018-12-06 19:14
kfyniriu
Rank: 5Rank: 5
等 级:职业侠客
威 望:7
帖 子:98
专家分:379
注 册:2018-7-6
  得分:10 
#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)函数中是有效的
2018-12-07 09:08
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:34
专家分:27
注 册:2018-10-18
  得分:10 
首先,跟上一楼一样,你的全称变量没有赋初值,然后,看得出来,楼主是要统计你所输入的字母,数字,空格这种混合串中的各种类型数量,那么,在定义各种内型变量的时候能否直接混用定义,然后,你这个程序连输入都没有,何谈输出
2018-12-07 19:21
加冕
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2018-11-24
  得分:0 
回复 3楼 龙岩花界
在main里不是在while判断时同时运用了ch1=getchar()经行赋值吗

授人以鱼不如授人以渔请说一下用什么方法和需要学习什么来解决问题,谢谢大家
2018-12-07 20:52







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022078 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved