中易网

c++程序为什么运行没错但就是没结果呢?求大神知道?错哪儿了?

答案:6  悬赏:10  
解决时间 2021-11-08 07:26
  • 提问者网友:剪短发丝
  • 2021-11-08 04:08
#include
#include
#include
void main()
{
int a,j,k=0;
int s;
for(int i=100;;i++){
if(i%10==8){
j=i;
while(j!=0){
j=j/10;
k++;
}
a=i/10;
s=8*pow(10,k)+a;
if(s==4*i){
cout< break;
}
}
}
}
最佳答案
  • 二级知识专家网友:兮沫♡晨曦
  • 2021-11-08 04:32
程序的意图我这样理解: 将一个尾数为8的整数i,将8提到数字的最前面得到s,要求s==i*4。
如果是这样,k就是计算i是多少位用的,那就需要在while循环前置0,否则结果不对。
程序在没有获得结果前就将k累计的很大,于是也不可能得到结果
全部回答
  • 1楼网友:不羁的心
  • 2021-11-08 08:42
你这个程序里没有输出语句,怎么会有什么结果呢?
  • 2楼网友:哭不代表软弱
  • 2021-11-08 08:26
用matlab自带的工具coder可以转化,或者手动生成可以调用的文件。网上搜一搜,步骤很清楚!
  • 3楼网友:一起来看看吧
  • 2021-11-08 06:53
确实是个无限循环,没有符合你要求的条件的数,或者很大,电脑很难算出来。
  • 4楼网友:时光挺欠揍
  • 2021-11-08 05:50
没看明白这段代码的目的,但在循环中k从来不赋0,没问题吗?会很大吧,特别是pow一下。。。
  • 5楼网友:苦柚恕我颓废
  • 2021-11-08 05:06
能不能说说你这段代码计算的目的是什么呢? 不懂你的目的就无从知道你的错误了 你可能要注意一点的就是整数相除结果为整数,你的代码里有两个地方都使用了整数相除,但是我不确定这是不是错误的原因,还请你描述一下你程序的目的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息