永发信息网

C语言小问题?

答案:6  悬赏:50  手机版
解决时间 2021-04-30 22:35

#include "stdio.h"
main()
{
int sum=0,i=2;

while(i<10)
{
sum=sum+i;
i=i*10+2;
}
printf("2+22+222+'''+2222222222=%d\n",sum);
}

这个程序对么。为什么输出是2?达不到想要的结果

最佳答案

#include "stdio.h"
main()
{
int sum=0,i=2;


while(i<10)
{
sum=sum+i;//第一次 sum=2
i=i*10+2;//第一次i=22;就不能进入循环了。
}
printf("2+22+222+'''+2222222222=%d\n",sum);//输出为2;
}



考虑int的取值范围是多少。

全部回答

这是你while循环的问题,如果你仔细看了很容易知道,此循环只能执行一次。

还有Int型数据最大为65535,无法表示你加的222222及后面的数。

给你改下

#include "stdio.h" main() {

unsigned long sum; int i=0,k=2;

while(i<10) { sum=sum+k; k=k*10+2;

i++; } printf("2+22+222+……'''+2222222222=%ld\n",sum); }

我这没编译器,你试试行不行,不行再来找我,

while循环执行一次后,i的值是22,因此while循环只能执行一次,sum就是2。这样修改

#include "stdio.h" main() { int sum=0,i=2;

while(i<=2222222222) {

sum=sum+i; i=i*10+2; } printf("2+22+222+'''+2222222222=%d\n",sum); }

不对改为:

#include "stdio.h" main() { long sum=0; int i=2,j=1;

while(j<10) { sum=sum+i; i=i*10+2; j++; } printf("2+22+222+...+2222222222=%ld\n",sum); }

其实你也可以这样写

#include <math.h>

int main()

{

int sum=0,i=0,m;

for(;i<10;i++)

m=2*pow(10,i);

sum+=m;

printf("%d",sum);

}

因为你用while(i<10). 第一次进入while循环. 把i的值乘以10加上2. i就等于22.

那么第二次循环开始时判断while(i<10)条件就不满足. 因此while只循环了一次. 所以sum的值就是2

#include "stdio.h" main() { int sum=0,i=2,n=1; while(n<10) { sum=sum+i; i=i*10+2; n=n+1; } printf("2+22+222+'''+2222222222=%d\n",sum); }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
他要我去找别人,是玩笑还是...
什么是身份证?
我的提问为什么通不过?
浙江省慈溪市甚么做车去象山定塘镇
难道所有的食草动物都反刍吗?
形容一辈子可能无法在一起却又很爱他放不下他
甘家冲怎么去啊,有知道地址的么
很紧急的,求求各位帮帮忙嘞
棒棒糖,好甜
字倒了,如何还原
三大空间神兽 .海皇牙 古拉顿 列空座这些如何
为什么会变成这样、说都不说话了?
我想问问有人知道怎么样可以让它的体力增加怎
冯巩小品经典台词,宋丹丹小品经典台词
有螺吃休闲餐吧我想知道这个在什么地方
推荐资讯
冒险岛暗影双刀要怎么洗血?洗血有又是什么意
脚气是怎么回事,用什么办法治最管用?
哪里有3D贴图素材库,有的各位大哥大姐给我个
VB怎么使键盘点击事件发声?
月经推迟二十天了如果是怀孕会有反应吗
新赛季湖人会怎样安排阵容??
沸洋洋的沸到底是什么意思呢?煮熟的意思吗
余家塘塍我想知道这个在什么地方
崔家玮在哪里?
我和她有误会了,该怎么处理?
QQ飞车星期六的所有时间都是四倍积分吗
11月未是什么星座?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?