账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mac电脑怎么调试c语言
    29
    0

    问题描述

    最近在学习C语言,mac电脑,编译之后如果有输出的代码可以在item里面输出看到效果,但如果遇到c = getchar()这类代码,没有办法模拟输出。

    问题出现的平台版本及自己尝试过哪些方法

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    include <stdio.h>

    define MAXHIST 15 //柱状图的最大长度

    define MAXWORD 11 //单词的最大长度

    define IN 1 //单词内

    define OUT 0 //单词外

    //打印输入单词长度的直方图,水平和垂直方向
    //输入的单词中各个单词长度不一样,统计每种长度的单词数,然后用直方图表示出各长度单词数的多少
    //https://blog.csdn.net/jeffash...
    int main()
    {

    int c, i, nc, state;//nc输入单词的长度 state标记单词内还是单词外
    int len;//每条的长度
    int maxvalue;//出现最多次的某长度单词出现的次数
    int ovflow;//超出单词最大长度的个数
    int wl[MAXWORD] = {0};//长度1-11的单词出现的次数
    
    state = OUT;//初始状态单词外
    nc = 0;//单词长度
    ovflow = 0;
    
    while ((c = getchar()) != EOF) {
        //单词结束
        if (c == ' ' || c == '\n' || c == '\t') {
            state = OUT;
            if (nc > 0)
            {
                //超过单词最大长度ovflow+1
                if (nc < MAXWORD)
                {
                    ++wl[nc];
                } else {
                    ++ovflow;
                }
            }
            nc = 0;
        } else if (state == OUT) {
            //单词外,单词开始
            state = IN;
            nc = 1;
        } else {
            //单词之内
            ++nc;
        }
    }
    
    //遍历所有的wl[i],取出最大值
    maxvalue = 0;
    for (i = 1; i < MAXWORD; ++i)
    {
        if (wl[i] > maxvalue)
        {
            maxvalue = wl[i];
        }
    }
    
    for (i = 0; i < MAXWORD; ++i)
    {
        printf("%5d - %5d : ", i, wl[i]);
        if (wl[i] > 0)
        {
            //len 是直方图中直方条的长度
            //长度为i的单词数占maxvalue的比例
            if ((len = wl[i] * MAXHIST / maxvalue) <= 0)
            {
                len = 1;
            } 
        } else {
            len = 0;
        }
    
        while (len > 0) {
            putchar('*');
            --len;
        }
        putchar('\n');
    }
    
    if (ovflow > 0)
    {
        printf("There are %d words >= %d\n", ovflow, MAXWORD);
    }

    }

    你期待的结果是什么?实际看到的错误信息又是什么?

    我想模拟输入,让程序读到我的输入,执行代码逻辑,不知道怎么操作,期待大神指点迷津,不胜感谢!### 问题描述

    问题出现的环境背景及自己尝试过哪些方法

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    你期待的结果是什么?实际看到的错误信息又是什么?

    题目描述

    题目来源及自己的思路

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    你期待的结果是什么?实际看到的错误信息又是什么?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部