鱼C论坛

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

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

  [复制链接]
发表于 2015-7-29 18:42:41 | 显示全部楼层
这个不错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-3 08:35:21 | 显示全部楼层
鱼币又不够了:ton:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-10 09:23:08 | 显示全部楼层
不是很理解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-22 23:00:49 | 显示全部楼层
第四讲 从另一个小程序接着说(课件+源代码) 第四讲 从另一个小程序接着说(课件+源代码) 第四讲 从另一个小程序接着说(课件+源代码)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-13 21:38:46 | 显示全部楼层
力学如力耕,勤惰尔自知。但使书种多,会有岁稔时。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-22 21:14:59 | 显示全部楼层
这只是一个开始
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-6 23:49:37 | 显示全部楼层
看看。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-16 19:34:27 From FishC Mobile | 显示全部楼层
谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-5 08:43:28 From FishC Mobile | 显示全部楼层
呵呵呵呵
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-17 16:57:32 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-10-30 18:05:52 | 显示全部楼层
非常感谢!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-16 05:00:01 | 显示全部楼层
试试下载 看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-4 10:24:08 | 显示全部楼层
好资料
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-8 18:26:41 | 显示全部楼层
fidh
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

这个不错嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2019-8-30 22:35:49 | 显示全部楼层
鱼币怎么赚啊。。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

  5. int main() {
  6.     int sum = addUserInput();
  7.     printf("%d", sum);
  8.     return 0;
  9. }

  10. int addUserInput() {
  11.     int sum = 0;//所有的总值
  12.     bool need_preread = true;
  13.     bool end_for = false;
  14.     char preread = ' ';
  15.     int value = 0;
  16.     for (;;) {
  17.         if (need_preread) {
  18.             preread = getchar();//在这里获取预读取值
  19.         }
  20.         else {
  21.             need_preread = true;
  22.         }
  23.         switch (preread) {
  24.         case ' ':
  25.             while ((preread = getchar()) == ' ');
  26.             need_preread = false;
  27.             break;
  28.         case '\n':
  29.             end_for = true;
  30.             break;
  31.         default:
  32.             preread = letterToNumber(preread, &value, true);
  33.             sum += value;
  34.             need_preread = false;
  35.             if (preread == '\n') {
  36.                 end_for = true;
  37.             }
  38.             break;
  39.         }
  40.         if (end_for) {
  41.             break;
  42.         }
  43.     }
  44.     return sum;
  45. }

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

  64. int pow(int down, int up) {
  65.     if (up == 0) {
  66.         return 1;
  67.     }
  68.     else {
  69.         int sum = 1;
  70.         for (int i = 0; i < up; i++) {
  71.             sum *= down;
  72.         }
  73.         return sum;
  74.     }
  75. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-12 21:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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