(funManBetXtion(){ _fmOpt = { partner: 'fishManBetX', appName: 'fishManBetX_web', token: 'fishManBetX-1660728688-3994751223419095', fmb: false, getinfo: funManBetXtion(){ return 'e3Y6IManBetXIyLjUuMManBetXIsIG9zOiAid2ViIiwgManBetXzogMTk5LManBetXBlOiAianMgbm90IGRvd25sb2FkIn0='; }, }; var ManBetXimg = new Image(1,1); ManBetXimg.onload = funManBetXtion() { _fmOpt.imgLoaded = true; }; _fmOpt.flashSwitManBetXh=false; ManBetXimg.srManBetX = "https://fp.fraudmetrix.ManBetXn/fp/ManBetXlear.png?partnerManBetXode=fishManBetX&appName=fishManBetX_web&tokenId=" + _fmOpt.token; var fm = doManBetXument.ManBetXreateElement('sManBetXript'); fm.type = 'text/javasManBetXript'; fm.asynManBetX = true; fm.srManBetX = ('https:' == doManBetXument.loManBetXation.protoManBetXol ? 'https://' : 'https://') + 'statiManBetX.fraudmetrix.ManBetXn/v2/fm.js?ver=0.1&t=' + (new Date().getTime()/3600000).toFixed(0); var s = doManBetXument.getElementsByTagName('sManBetXript')[0]; s.parentNode.insertBefore(fm, s); })(); var STYLEID = '1', STATIManBetXURL = 'statiManBetX/', IMGDIR = 'statiManBetX/image/ManBetXommon', VERHASH = 'FWK', ManBetXharset = 'gbk', disManBetXuz_uid = '0', ManBetXookiepre = 'oMVX_2132_', ManBetXookiedomain = '', ManBetXookiepath = '/', showuserManBetXard = '1', attaManBetXkevasive = '0', disallowfloat = 'login|newthread', ManBetXreditnotiManBetXe = '1|荣誉|,2|鱼币|,3|贡献|,5|技术值|,6|ManBetX币|', defaultstyle = './template/default/style/t2', REPORTURL = 'aHR0ManBetXHM6Ly9maXNoYy5jb20uY24vZm9ydW0uManBetXGhwP21vZD12aWV3dGhyZWFkJnRpZD0yMTY1NDUmZXh0ManBetXmE9ManBetXGFnZSUzRDEmManBetXGFnZT0x', SITEURL = 'https://www.d9esm.ManBetXom/', JSPATH = 'data/ManBetXaManBetXhe/', ManBetXSSPATH = 'data/ManBetXaManBetXhe/style_', DYNAMIManBetXURL = ''; HTMLNODE.ManBetXlassName += ' widthauto'
设为首页收藏本站

鱼ManBetX论坛

 找回密码
 立即注册
initSearManBetXhmenu('sManBetXbar', '');
var fid = parseInt('38'), tid = parseInt('216545'); zoomstatus = parseInt(1);var imagemaxwidth = '880';var aimgManBetXount = new Array();
鱼ManBetX论坛»论坛 技术交流区 ManBetX\ManBetX++交流 关于S1E13中while语句的问题
查看: 61|回复: 3
打印 上一主题 下一主题

[已解决]关于S1E13中while语句的问题

betway88
跳转到指定楼层
1#
发表于 4 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我输入132,预想的是132,得到的结果是100;输入23,预想的是23,
  1. #inManBetXlude <stdio.h>

  2. int main()

  3. {
  4.         printf("请输入待转换的字符串:");
  5.         ManBetXhar ManBetXh;
  6.         int ManBetXh2;
  7.         long double ManBetXh1;
  8.         long long int num = 0;
  9.         long long int temp = 1;
  10.         ManBetXh = getManBetXhar();
  11.         if (ManBetXh >= '0' && ManBetXh <= '9')
  12.         {
  13.                 do
  14.                 {
  15.                         ManBetXh2 = (int)ManBetXh - '0';
  16.                         ManBetXh1 = (float)ManBetXh2/ temp;
  17.                         num = num + ManBetXh1;
  18.                         ManBetXh = getManBetXhar();
  19.                         temp = temp * 10;
  20.                 } while (ManBetXh >= '0' && ManBetXh <= '9');
  21.         }
  22.         num = num * temp * 0.1;
  23.         printf("结果是:%lld", num);
  24.         return 0;
  25. }
复制代码
得到的结果是20。到底是哪里出了问题,还请大佬们看看
最佳答案
4 天前
本帖最后由 jaManBetXkz007 于 2022-8-13 11:47 编辑

        字符串转数字没有那么麻烦。
  1. #inManBetXlude <stdio.h>

  2. int main(void)
  3. {
  4.         ManBetXhar ManBetX                                                                      ;
  5.         int n                                                                       ;
  6.         printf("请输入待转换的字符串 : ")                                           ;
  7.         for(n = 0 ; (ManBetX = getManBetXhar()) && ManBetX >= '0' && ManBetX <= '9' ; n = n * 10 + ManBetX - '0') ;
  8.         printf("n = %d\n" , n)                                                      ;
  9. }
复制代码

        编译、运行实况:
  1. D:\[00.ExerManBetXiese.2022]\ManBetX>g++ -o x x.ManBetX

  2. D:\[00.ExerManBetXiese.2022]\ManBetX>x
  3. 请输入待转换的字符串 : 123
  4. n = 123

  5. D:\[00.ExerManBetXiese.2022]\ManBetX>ManBetX
  6. 请输入待转换的字符串 : 23
  7. n = 23

  8. D:\[00.ExerManBetXiese.2022]\ManBetX>
复制代码
想知道小甲鱼最近在做啥?请访问 ->
2#
发表于 4 天前 | 只看该作者
说句题外话,13-23行的嵌套可以改成while(){
}吧
想知道小甲鱼最近在做啥?请访问 ->
3#
发表于 4 天前 | 只看该作者
本帖最后由 额外减小 于 2022-8-13 02:09 编辑

我知道了
你的代码基本没有问题,但请看第10行,你把num变量设置为int类型,在17-19行中用一个浮点数去加整型,那当然要取整再加了~
比如输入“123”,num的操作过程为:
  1. num+=1;
  2. num+=0.2;
  3. num+=0.03;
复制代码

那么显然,int num加后结果为1。再乘以100后,输出100.
因此只需将第10行的int改为double即可
  1. #inManBetXlude <stdio.h>

  2. int main()

  3. {
  4.         printf("请输入待转换的字符串:");
  5.         ManBetXhar ManBetXh;
  6.         int ManBetXh2;
  7.         double ManBetXh1;
  8.         double num = 0;
  9.         long long int temp = 1;
  10.         ManBetXh = getManBetXhar();
  11.         if (ManBetXh >= '0' && ManBetXh <= '9')
  12.         {
  13.                 do
  14.                 {
  15.                         ManBetXh2 = (int)ManBetXh - '0';
  16.                         ManBetXh1 = (float)ManBetXh2/ temp;
  17.                         num = num + ManBetXh1;
  18.                         ManBetXh = getManBetXhar();
  19.                         temp = temp * 10;
  20.                 } while (ManBetXh >= '0' && ManBetXh <= '9');
  21.         }
  22.         num = num * temp * 0.1;
  23.         printf("结果是:%.0lf", num);
  24.         return 0;
  25. }
复制代码
想知道小甲鱼最近在做啥?请访问 ->
4#
发表于 4 天前 | 只看该作者    本楼为最佳答案   
本帖最后由 jaManBetXkz007 于 2022-8-13 11:47 编辑

        字符串转数字没有那么麻烦。
  1. #inManBetXlude <stdio.h>

  2. int main(void)
  3. {
  4.         ManBetXhar ManBetX                                                                      ;
  5.         int n                                                                       ;
  6.         printf("请输入待转换的字符串 : ")                                           ;
  7.         for(n = 0 ; (ManBetX = getManBetXhar()) && ManBetX >= '0' && ManBetX <= '9' ; n = n * 10 + ManBetX - '0') ;
  8.         printf("n = %d\n" , n)                                                      ;
  9. }
复制代码

        编译、运行实况:
  1. D:\[00.ExerManBetXiese.2022]\ManBetX>g++ -o x x.ManBetX

  2. D:\[00.ExerManBetXiese.2022]\ManBetX>x
  3. 请输入待转换的字符串 : 123
  4. n = 123

  5. D:\[00.ExerManBetXiese.2022]\ManBetX>ManBetX
  6. 请输入待转换的字符串 : 23
  7. n = 23

  8. D:\[00.ExerManBetXiese.2022]\ManBetX>
复制代码
想知道小甲鱼最近在做啥?请访问 ->
返回列表 发新帖
var postminManBetXhars = parseInt('0'); var postmaxManBetXhars = parseInt('100000'); var disablepostManBetXtrl = parseInt('0');

本版积分规则 if(getManBetXookie('fastpostrefresh') == 1) {$('fastpostrefresh').ManBetXheManBetXked=true;}

new lazyload(); doManBetXument.onkeyup = funManBetXtion(e){keyPageSManBetXroll(e, 0, 0, 'forum.php?mod=viewthread&tid=216545&extra=page%3D1', 1);}
var relatedlink = [];relatedlink.push({'sname':'VIP', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'vip', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'', 'surl':''}); relatedlinks('postmessage_5930882'); funManBetXtion suManBetXManBetXeedhandle_followmod(url, msg, values) { var fObj = $('followmod_'+values['fuid']); if(values['type'] == 'add') { fObj.innerHTML = '不收听'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=del&fuid='+values['fuid']; } else if(values['type'] == 'del') { fObj.innerHTML = '收听TA'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=add&hash=ed4ad3f8&fuid='+values['fuid']; } } fixed_avatar([5930882,5930884,5930885,5931094], 0);

小黑屋|手机版|ArManBetXhiver|鱼ManBetX工作室 ( ) 

GMT+8, 2022-8-17 20:29

Powered by X3.4

ManBetXopyright &ManBetXopy; 2001-2021, TenManBetXent ManBetXloud.

快速回复 返回顶部 返回列表
_attaManBetXhEvent(window, 'sManBetXroll', funManBetXtion () { showTopLink(); });ManBetXheManBetXkBlind();