鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

第三讲 从一个小程序说起(2)(课件+源代码)

  [复制链接]
发表于 2015-7-29 18:42:41 | 显示全部楼层
这个不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-3 08:35:21 | 显示全部楼层
鱼币又不够了:ton:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-10 09:23:08 | 显示全部楼层
不是很理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-22 23:00:49 | 显示全部楼层
第四讲 从另一个小程序接着说(课件+源代码) 第四讲 从另一个小程序接着说(课件+源代码) 第四讲 从另一个小程序接着说(课件+源代码)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-13 21:38:46 | 显示全部楼层
力学如力耕,勤惰尔自知。但使书种多,会有岁稔时。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-22 21:14:59 | 显示全部楼层
这只是一个开始
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-6 23:49:37 | 显示全部楼层
看看。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-16 19:34:27 From FishC Mobile | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-5 08:43:28 From FishC Mobile | 显示全部楼层
呵呵呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-17 16:57:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-30 18:05:52 | 显示全部楼层
非常感谢!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-16 05:00:01 | 显示全部楼层
试试下载 看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-4 10:24:08 | 显示全部楼层
好资料
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-8 18:26:41 | 显示全部楼层
fidh
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-4 21:39:30 | 显示全部楼层

这个不错嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-30 22:53:25 | 显示全部楼层
我用的是visual studio 2019 community    ,这一课讲的哪个程序,我照着打了一遍,有ungetc(ch, stdin);这句代码,但是还是会被吃掉一个数字,这是什么问题啊??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-30 22:35:49 | 显示全部楼层
鱼币怎么赚啊。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-2 21:51:41 | 显示全部楼层
发一个我自己的实现,感觉比作者的好,可以处理没有任何输入的情况.
#include <stdio.h>

int addUserInput();
char letterToNumber(char last_letter, int* value, bool counter_to_zero);
int pow(int down, int up);

int main() {
    int sum = addUserInput();
    printf("%d", sum);
    return 0;
}

int addUserInput() {
    int sum = 0;//所有的总值
    bool need_preread = true;
    bool end_for = false;
    char preread = ' ';
    int value = 0;
    for (;;) {
        if (need_preread) {
            preread = getchar();//在这里获取预读取值
        }
        else {
            need_preread = true;
        }
        switch (preread) {
        case ' ':
            while ((preread = getchar()) == ' ');
            need_preread = false;
            break;
        case '\n':
            end_for = true;
            break;
        default:
            preread = letterToNumber(preread, &value, true);
            sum += value;
            need_preread = false;
            if (preread == '\n') {
                end_for = true;
            }
            break;
        }
        if (end_for) {
            break;
        }
    }
    return sum;
}

char letterToNumber(char last_letter, int* value, bool counter_to_zero) {
    char current_letter = getchar();
    static int counter = 0;//当遇到空白字符时开始counter的增加,每次解开一层递归就计数器加1
    if (counter_to_zero) {
        counter = 0;
        counter_to_zero = false;
    }
    static char flag = 'N';//返回N表示没有遇到空字符
    if (current_letter >= '0' && current_letter <= '9') {//如果当前的字符为数字字符就继续执行letter_to_number
        letterToNumber(current_letter, value, counter_to_zero);
    }
    else {
        flag = current_letter;
    }
    *value += (last_letter - '0') * pow(10, counter);
    counter++;
    return flag;
}

int pow(int down, int up) {
    if (up == 0) {
        return 1;
    }
    else {
        int sum = 1;
        for (int i = 0; i < up; i++) {
            sum *= down;
        }
        return sum;
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-8 09:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表