| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 648 人关注过本帖
标题:大神请帮帮忙···
只看楼主 加入收藏
w1058663489
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-3-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:13 
大神请帮帮忙···
#include<stdio.h>
void main()
{ char ch[7]={"12ab56"};
  int i, s=0;
  for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)
      s=10*s+ch[i]-'0';
  printf("%d\n",s);
}
大神这条程序运行的结果是什么?为什么作业上面给的答案是:1
                                                    2
                                                    5
                                                    6
2012-03-11 16:23
logeable
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2012-3-11
收藏
得分:3 
我这运行的结果是1哎

[ 本帖最后由 logeable 于 2012-3-11 16:40 编辑 ]
2012-03-11 16:38
亚夫
Rank: 2
等 级:论坛游民
帖 子:5
专家分:11
注 册:2012-3-4
收藏
得分:3 
运行结果是1,你可以运行试一试,不要太在意答案
2012-03-11 16:43
飞莲
Rank: 2
等 级:论坛游民
帖 子:42
专家分:64
注 册:2011-12-28
收藏
得分:3 
是1,写错了我

[ 本帖最后由 飞莲 于 2012-3-11 16:49 编辑 ]
2012-03-11 16:47
achj198781
Rank: 2
等 级:论坛游民
帖 子:18
专家分:42
注 册:2012-3-9
收藏
得分:3 
就是1,当第二次运行的时候,i=2了,数组的第三个数是字母,不满足条件,就退出循环了。
书上答案明显不对,printf()语句又没包含在for语句块下,每次循环只会执行s=10*s+ch[i]-'0';
只有在循环完了以后才执行printf(),只会打印出一个数
2012-03-11 17:36
w1058663489
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-3-4
收藏
得分:0 
回复 2楼 logeable
嗯嗯,谢谢啊,我在电脑上面运行也是1,我用的是win7,所以我就想知道会不会是系统的问题呢?哎哟,那个教材好坑爹啊,还有好多问题呢,那个s=10*s+ch[i]-'0';里面的s怎么理解,它的作用是什么呢?能不能再问问,以下能对二维数组a进行正确初始化的语句是:
A. int a[2][ ]={{,0,1},{5,2,3}};
B. int a[ ][3]={{1,2,3},{4,5,6}};
C. int a[2][4]={{1,2,3},{4,5},{6}};
D. int a[ ][3]={{1,0,0},{ },{1,1}};
我想知道为什么答案是B,我认为选D,D哪错了啊?
2012-03-12 00:09
w1058663489
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-3-4
收藏
得分:0 
回复 3楼 亚夫
嗯嗯,谢谢,我也很不想在意答案,而且觉得很坑爹啊,可是要考试呢,所以···顺便在问问吧···
以下能对二维数组a进行正确初始化的语句是:
A. int a[2][ ]={{,0,1},{5,2,3}};
B. int a[ ][3]={{1,2,3},{4,5,6}};
C. int a[2][4]={{1,2,3},{4,5},{6}};
D. int a[ ][3]={{1,0,0},{ },{1,1}};
我想知道为什么答案是B,我认为选D,D哪错了啊?
谢谢了啊!
2012-03-12 00:12
w1058663489
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-3-4
收藏
得分:0 
回复 4楼 飞莲
同样很感谢啦!
2012-03-12 00:13
w1058663489
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-3-4
收藏
得分:0 
回复 5楼 achj198781
谢谢,那个s=10*s+ch[i]-'0';里面的s怎么理解,它的作用是什么呢?能不能再问问,以下能对二维数组a进行正确初始化的语句是:
A. int a[2][ ]={{,0,1},{5,2,3}};
B. int a[ ][3]={{1,2,3},{4,5,6}};
C. int a[2][4]={{1,2,3},{4,5},{6}};
D. int a[ ][3]={{1,0,0},{ },{1,1}};
我想知道为什么答案是B,我认为选D,D哪错了啊?
还有好多这样的问题呢,请大神赐教啊···
2012-03-12 00:16
hxdasdf
Rank: 1
等 级:新手上路
帖 子:6
专家分:9
注 册:2012-2-3
收藏
得分:3 
回复 9楼 w1058663489
这题的本意是把字符串中的数字转化成一个整形数输出,上一次的s扩大10倍后和这次的s相加。

数组初始化完全为空是非法的,要加一个0
2012-03-12 12:50
快速回复:大神请帮帮忙···
数据加载中...
 
   



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

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