| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 521 人关注过本帖
标题:下面程序的c的值是什么?
只看楼主 加入收藏
winglesswu
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2013-1-28
结帖率:71.88%
收藏
 问题点数:0 回复次数:5 
下面程序的c的值是什么?
#include <stdio.h>
 #define BASE  2
 #define VALUE 13
 #define SHIFT 2

 int changeBase(int in, int oldBase, int newBase) {
     int digit, out, factor;

     out = 0;
     factor = 1;
     while (in != 0) {
         digit  = in % oldBase;
         out    = factor * digit + out;
         factor = newBase * factor;
         printf("%d %6d %d\n", digit, in, out);
         in     = in / oldBase;
     }
    return out;
 }

 int main(void) {
     int c, i;

     c = changeBase(VALUE, BASE, 10);//函数里的renturn out是好几个数值,那么c的值是什么?不明白。
     printf("%03d in base %d is %d\n", VALUE, BASE, c);

     for (i = 0; i < SHIFT; i++)
         c = c * 10;

     printf("%03d * %d^%d in base %d is %06d\n", VALUE, BASE,  
      SHIFT, BASE, c);

     c = changeBase(c, 10, BASE);
     printf("%03d * %d^%d is %d\n", VALUE, BASE, SHIFT, c);

     return 0;
 }
搜索更多相关主题的帖子: include factor color 
2013-04-10 09:00
y3765258
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:106
专家分:172
注 册:2013-4-9
收藏
得分:0 
不懂你问的什么,C的值不就是自定义函数里 最后OUT的值么。debug一下就知道了。
这道题怎么看都像书上的,蛋疼的变量。

有问题一起探讨,一起进步。
2013-04-10 10:49
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
收藏
得分:0 
你理解错了,C 中的函数只有一个返回值,至于你这个, OUT 应该是个累加变量。 你可以在 return out 之前 把out 输出来看看
2013-04-10 10:59
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
收藏
得分:0 
C 中的任何函数都只有一个返回值。 如果需要多个返回值,你可以 1 用结构体
                                                            2 用全局变量
                                                            3 如果数据类型一致用数组
2013-04-10 11:02
winglesswu
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2013-1-28
收藏
得分:0 
明白了,谢谢。
2013-04-10 11:13
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
1、int changeBase(int in, int oldBase, int newBase)该函数返回值就一个,没有第二个,out= factor * digit + out;就是返回的值;
2、你要注意你输出的是什么,int changeBase(int in, int oldBase, int newBase)函数中也有一次输出,并且还是while循环,所以肯能要输出几次的,printf("%d %6d %d\n", digit, in, out);这个可不是c哦!你对照Debug中的输出内容,和你的程序代码一个个对对,理理思路应该就会明白的哦。c的值为最后一次循环的值

Maybe
2013-04-10 11:14
快速回复:下面程序的c的值是什么?
数据加载中...
 
   



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

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