枚举
四重循环
#include<stdio.h>
int main()
{
int a,b,c,d,i;
scanf("%d",&i);
for(d=1;d<=i;d++)
for(a=2;a<=100;a++)
for(b=a;b<=100;b++)
for(c=b;c<=100;c++)
if(d*d*d==a*a*a+b*b*b+c*c*c)
printf("Cube = %d, Triple = (%d,%d,%d)\n",d,a,b,c);
return 0;
}
外层和内层for循环嵌套
#include <stdio.h>
int main(){
int i, j;
for(i=1; i<=9; i++){ //外层for循环
for(j=1; j<=i; j++){ //内层for循环
printf("%d*%d=%-2d ", i, j, i*j);
}
printf("\n");
}
return 0;
}
每一次外层循环执行一遍,内层循环需要i次;
输出结果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
Program ended with exit code: 0
#include <stdio.h>
int main(){
int a[4];
for(int i=0;i<4;i++) a[i]=i;
printf("%d\n",a[3]);
return 0;
}
输出:3
如果是a[2],输出是2;
#include <stdio.h>
#define NUM 100
int main()
{
int a[NUM];
for(int i = 0;i < NUM; ++i) a[i]=i;
for(int i = NUM-1;i >= 0; --i) printf("%d ",a[i]);
return 0;
}
输出结果为:
99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
解释一下for()后为什么直接加分号:
直接在for后的括号外加分号是因为只做循环,做了循环后,就直接蹦到下一循环了,
如果是数组for(int i=0;i<4;i++); a[i]=i;
最后的结果只有a[3]=3;
人有体力、情商、智商的高峰日子,它们分别每隔 23天、28天和33天出现一次。对于每个人,我们想 知道何时三个高峰落在同一天。给定三个高峰出现 的日子p,e和i(不一定是第一次高峰出现的日子), 再给定另一个指定的日子d,你的任务是输出日子d 之后,下一次三个高峰落在同一天的日子(用距离d 的天数表示)。例如:给定日子为10,下次出现三 个高峰同一天的日子是12,则输出2。
输入
输入四个整数:p, e, i和d。 p, e, i分别表示体力、情感和智力 高峰出现的日子。d是给定的日子,可能小于p, e或 i。所有给 定日子是非负的并且小于或等于365,所求的日子小于或等于 21252。
输出
从给定日子起,下一次三个高峰同一天的日子(距离给定日子
的天数)。
三层for循环
#include <stdio.h>
int main()
{
int p,e,i,d,m,caseNo=0;
while(scanf("%d %d %d %d",&p,&e,&i,&d)&& p!=-1 && e!=-1 && i!=-1 && d!=-1)
{
caseNo++;
int k;
for(k=d+1;(k-p)%23;k++);
for(;(k-e)%28;k+=23);
for(;(k-i)%33;k+=23*28);
{
m=k-d;
printf("case%d the next triple peak occurs in %d(%d-%d)days.\n",caseNo,m,k,d);
}
}
return 0;
}
输出结果:
5 20 34 325
case1 the next triple peak occurs in 19575(19900-325)days.
版权声明:本文为hellobettershero原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。