我是靠谱客的博主 想人陪红牛,最近开发中收集的这篇文章主要介绍while循环里面scanf_5.1 for循环,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • for循环像一个计数循环:设定一个计算器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步进进行调整,比如加1或者减1

for(i=0;i<5;i=i+1){ printf("%d",i); }

  • for(初始动作;条件;每轮的动作){
    }
  • for中的每一个表达式都是可以省略的
    for (;条件;) == while (条件)

for=对于

  • for(count=10;count>0;count--)
  • 就读成:“对于一开始的count=10.当count>0时,重复做循环体,每一轮循环在昨晚循环体内语句后,使得count--。

c int n; scanf("%d",&n); int fact = 1; for ( int i=1; i<=n;i++){ fact *= i; } printf("%d!=%dn",n,fact)

  • 循环控制变量i只在循环里被使用了,在循环外面它没有任何用处。因此,我们可以把变量i的定义写到for语句里面去
  • 只有C99能使用

循环次数

  • for(i=0;i<n;i++)
  • 则循环的次数是n。而循环结束以后,i的值是n。循环的控制变量i,是选择从0开始还是从1开始,是判断i<n还是判断i<=n,对循环的次数,循环结束后变量的值都有影响
for (int i=1;i<=n;i++){
fact *=i;
}
int i=1;
while (i<=n){
fact *= i;
i++;
}

Tips for loops

  • 如果有固定次数,用for
  • 如果必须执行一次,用do-while
  • 其他情况用while

素数

  • 只能被1和自己整除的数,不包括1
  • 2,3,5,7,11,13,17,19.......

```c #include int main(){ int x; scanf("%d",&x);

int i;
int isPrime = 1;
for (i=2;i<x;i++){
if (x % i == 0){
isPrime = 0;
}
}
if (isPrime == 1){
printf("是素数n");
}else{
printf("不是素数n")
}
return 0;

}

```

#### break vs continue

  • break:跳出循环
  • continue:跳过循环这一轮剩下的语句进入下一轮
  • 只能对它所在的那层循环做

凑硬币

  • 如何用1角、2角和5角的硬币凑出10元以下的金额呢?
#include <stdio.h>
int main(){
int x;
int one,two,five;
// scanf("%d",&x);
x = 2;
for (one = 1;one< x*10;one++){
for(two = 2;two< x*10/2;two++){
for(five = 5;five< x*10/5;five++){
if (one + two*2 +five*5 == x*10){
printf("可以用%d个1角加%d个2角加%d个5角得到%d元n",one,two,five,x);
}
}
}
}
return 0;
}

跳出多重循环

接力break

#include <stdio.h>
int main(){
int x;
int one,two,five;
exit = 0;
// scanf("%d",&x);
x = 2;
for (one = 1;one< x*10;one++){
for(two = 2;two< x*10/2;two++){
for(five = 5;five< x*10/5;five++){
if (one + two*2 +five*5 == x*10){
printf("可以用%d个1角加%d个2角加%d个5角得到%d元n",one,two,five,x);
exit =1;
break;
}
}
if(exit==1) break;
}
if(exit==1) break;
}
return 0;
}

goto

#include <stdio.h>
int main(){
int x;
int one,two,five;
// scanf("%d",&x);
x = 2;
for (one = 1;one< x*10;one++){
for(two = 2;two< x*10/2;two++){
for(five = 5;five< x*10/5;five++){
if (one + two*2 +five*5 == x*10){
printf("可以用%d个1角加%d个2角加%d个5角得到%d元n",one,two,five,x);
goto out;
}
}
}
}
out:
return 0;
}

循环应用:求前n项求和

#include <stdio.h>
int main()
{
int n;
int i;
double sum = 0.0;
scanf ("%d",&n);
for ( i=1;i<=n;i++)
{
sum += 1.0/i;
}
printf{"f(%d)=%fn",n,sum};
return 0;
}
#include <stdio.h>
int main()
{
int n;
int i;
double sum = 0.0;
int sign =1;
scanf ("%d",&n);
for ( i=1;i<=n;i++)
{
sum += 1.0/i;
sign = -sign;
}
printf{"f(%d)=%fn",n,sum};
return 0;
}

正序分解整数

#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
int t= x;
int mask =1;
while (t>9) {
t/=10;
mask *=10;
}
printf("x=%d,mask=%dn",x,mask);
do {
int d = x /mask;
printf("%d",d);
if (mask>0) {
printf(" ");
}
x %= mask;
mask /= 10;
}while (mask>0);
printf("n");
return 0;
}

求最大公约数

/*如果b等于0,计算结束,a就是最大公约数;
否则,计算a除以b的余数,让a等于b,而b等于那个余数;
回到第一步。
a
b
t
12 18 12
18 12
6
12
6
0
6
0
*/
#include <stdio.h>
int main()
{
int a,b;
int t;
scanf("%d %d",&a,&b);
while (b !=0){
t= a%b;
a=b;
b=t;
}
printf("gcd=%dn",a);
return 0;
}

最后

以上就是想人陪红牛为你收集整理的while循环里面scanf_5.1 for循环的全部内容,希望文章能够帮你解决while循环里面scanf_5.1 for循环所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部