我是靠谱客的博主 想人陪红牛,这篇文章主要介绍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,对循环的次数,循环结束后变量的值都有影响
复制代码
1
2
3
4
5
6
7
8
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);

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
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元以下的金额呢?
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#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项求和

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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; }

正序分解整数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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; }

求最大公约数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*如果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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部