编程中关于for的循环不能用,只能输出第一个值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程中关于for的循环不能用,只能输出第一个值相关的知识,希望对你有一定的参考价值。
#include<stdio.h>
#include<math.h>
int main()
int i,a,b,c,d,e,f,g,h,j,k;
double power;
i=1;
printf("满足条件的数为:");
for(i=1;i<=10000;i++)
a=i/10;b=a%10;power=pow(i,3);
if(a==0&&power==i)
printf("%d,",i);break;
c=a/10;d=a%10;power=power+pow(b,3);
if(c==0&&power==i)
printf("%d,",i);break;
e=c/10;f=c%10;power=power+pow(f,3);
if(e==0&&power==i)
printf("%d,",i);break;
g=e/10;h=e%10;power=power+pow(h,3);
if(g==0&&power==i)
printf("%d,",i);break;
j=g/10;k=g%10;power=power+pow(k,3);
if(j==0&&power==i)
printf("%d,",i);break;
return 0;
求1-10000中所有满足各位数立方之和等于本身的数,并输出。
if(a==0&&power==i)
printf("%d,",i);break;
很显然,第一个数1就满足条件了,然后你就break了,从循环里退出来了。当然只能打印出第一个。
另外,你加了太多不必要的,把程序的层次搞得过于繁复,很不好读。顺序结构不必加。追问
那怎么,改呢,不让他蹦出来,还能做完整个过程??谢谢
追答很简单啊,把break去掉就可以了啊。如果你的目的是第一个if条件满足了就直接开始下一个循环、不再继续判断之后的if条件,以提高程序的效率,那就把顺序进行的几个if判断改成if-else嵌套。总之,如果你不想退出循环,就不可以用break。
参考技术B 我给你写个代码更清晰的:#include <stdio.h>
#include <math.h>
int main()
int n,tmp,sum;
for(n=1;n<=10000;n++)
tmp=n;
sum=0;
while(1)
sum+=pow(tmp%10,3);
if(!(tmp/=10))break;
if(sum==n)
printf("%d ",n);
printf("\n");
return 0;
追问
大哥,我刚开始学c啊,还没那么高的水平呢,就用我的程序,怎么改呢??
追答#include<stdio.h>#include<math.h>
int main()
int i,a,b,c,d,e,f,g,h,j,k;
double power;
i=1;
printf("满足条件的数为:");
for(i=1;i<=10000;i++)
a=i;
b=a%10;
a=i/10;
power=pow(b,3);
if(a==0&&power==i)
printf("%d,",i);
continue;
d=a%10;
c=a/10;
power=power+pow(d,3);
if(c==0&&power==i)
printf("%d,",i);
continue;
f=c%10;
e=c/10;
power=power+pow(f,3);
if(e==0&&power==i)
printf("%d,",i);
continue;
h=e%10;
g=e/10;
power=power+pow(h,3);
if(g==0&&power==i)
printf("%d,",i);
continue;
k=g%10;
j=g/10;
power=power+pow(k,3);
if(j==0&&power==i)
printf("%d,",i);
continue;
printf("\\n");
return 0;
本回答被提问者采纳
this的用法
因为循环是非常快的,我们手动点击的时候,for循环已经循环完了。如果在循环里面添加点击事件,点击事件的i的值就是循环结果的那个值,而不是对应的循环的值,此时,我们就需要用到this 来实现 点击哪一个,this就指向哪一个
this: 指的是当前的对象, 是关键词,不能当做变量名,只能读,不能写,它的值只能用来用,而不能修改
通常,this有2种用法,第一种,在函数外部使用,此时,this的值指向的是Windows
第二种,在函数内部使用。又分为2种情况,1,直接调用函数,this同样指向的是Windows 2,被事件调用,并且是以赋值的形式出现的,此时this指向的是谁调用了函数,this就指向谁的。这就很好地方便了再循环里面使用this来实现,每一个的事件发生。
可以通过以下例子开具体了解:
首先,我们先来创建几个div 实现,点击任意一个div 这个被点击的div的背景颜色就相应的作出改变 改变成为红色
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>this批量改变元素的样式</title>
<link rel="stylesheet" href="../css/this批量改变元素的样式.css">
</head>
<body>
<div id="content">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<script src="../js/this批量改变元素的样式.js"></script>
</body>
</html>
css
.box{
width: 200px;
height: 200px;
margin-right: 20px;
float: left;
}
此时,页面中就有5个颜色为金色的div
js代码:
var bigDiv=document.getElementById(‘content‘);
var listOfDiv=bigDiv.getElementsByTagName(‘div‘);
for(var i=0;i<listOfDiv.length;i++){
listOfDiv[i].onclick=function(){
this.style.backgroundColor=‘red‘;
};
}
这样就可以实现,任意点击一个div 这个div的颜色就变为红色
以上是关于编程中关于for的循环不能用,只能输出第一个值的主要内容,如果未能解决你的问题,请参考以下文章
请教个java for 循环问题。。用个for循环,第一次循环时取第一个值,第二次循环时取第二个值。以此类推