5.1.1 for循环
5.1.2循环的计算和选择
5.2.1循环控制
5.2.2嵌套的循环
5.2.3嵌套的弹跳
5.3.1前n项求和
5.3.2整数分解
5.3.3求最大公约数
利用whlie循环求阶乘
1.解决方案:#include2.问题描述:int main() { int n; scanf("%d",&n); int fact=1; int i=1; while(i<=n){ fact*=i; i++; } printf("%d!=%dn",n,fact); return 0; }
利用for循环求阶乘
2.解决方案:#include3.问题描述:int main() { int n; scanf("%d",&n); int fact=1; int i=1; for(i=1;i<=n;i++){ fact*=i; } printf("%d!=%dn",n,fact); return 0; }
读入用户输入的一个数字判断是否为素数?
3.解决方案:#includeint main() { int x; scanf("%d",&x); int i; int isPrime=1; for(i=2;i 4.问题描述: 如何写程序输出100以内的素数?
4.解决方案:#includeint main() { int x; for(x=1;x<=100;x++){ int i; int isPrime=1; for(i=2;i 5.问题描述: 如何写程序输出前50个的素数使用for语句?
5.解决方案:#includeint main() { int x; int cut=0; for(x=1;cut<50;x++){ int i; int isPrime=1; for(i=2;i 6.问题描述: 如何写程序输出前50个的素数使用while语句?
6.解决方案:#includeint main() { int x; int cut=0; //for(x=1;cut<50;x++){ x=1;//去掉for多出的部分 while(cut<50){//去掉for多出的部分 int i; int isPrime=1; for(i=2;i 7.问题描述: 使用1角,3角,5角凑硬币,并使其有一种结果的时候使用break跳出?
7.解决方案:#includeint main() { int x; int one,two,five; int exit=0;//作用使其有一种结果的时候跳出 scanf("%d",&x); for(one=1;one 8.问题描述: 使用1角,3角,5角凑硬币,并使其有一种结果的时候使用goto跳出?
8.解决方案:#includeint main() { int x; int one,two,five; scanf("%d",&x); for(one=1;one 9.问题描述: 前n项求和F(x)=1+1/2+1/3+1/4+...+1/n=?
9.解决方案:#include10.问题描述:int main() { int n; int i; double sum=0.0; scanf("%d",&n); n=100; for(i=1;i<=n;i++){ sum+=1.0/n; } printf("f(%d)=%fn",n,sum); return 0; } 前n项求和F(x)=1-1/2+1/3-1/4+...+1/n=?加减交替
10.解决方案:#include11.问题描述:int main() { int n; int i; double sum=0.0; int sign=1;//使其表达式变号 scanf("%d",&n); for(i=1;i<=n;i++){ sum+=sign*1.0/i;//使其表达式变号 sign=-sign;//使其表达式变号 } printf("f(%d)=%fn",n,sum); return 0; } 逆序分解整数
11.解决方案:#include12.问题描述:int main() { int x; scanf("%d",&x); do{ int d=x%10; printf("%d",d); if(x>9){//使输出的结果有空格 printf(" ");//使输出的结果有空格 }//使输出的结果有空格 x/=10; }while(x>0); printf("n");//使输出的结果有空格 return 0; } 正序整数分解
12.解决方案:#include13.问题描述:int main() { int x; scanf("%d",&x); int mask=1;//由X位数确定从几倍数开始除 int t=x;//由X位数确定从几倍数开始除 while(t>9){//由X位数确定从几倍数开始除 t/=10;//由X位数确定从几倍数开始除 mask*=10;//由X位数确定从几倍数开始除 }//由X位数确定从几倍数开始除 printf("x=%d,mask=%dn",x,mask);//验证由X位数确定从几倍数开始除是否正确 do{ int d=x/mask; printf("%d",d); if(mask>9){//使输出的结果有空格 printf(" ");//使输出的结果有空格 }//使输出的结果有空格 x%=mask; mask/=10; }while(mask>0); printf("n");//使输出的结果有空格 return 0; } 求最大公约数
13.解决方案:#includeint main() { int a,b; int t; scanf("%d %d",&a,&b); while(b!=0){ t=a%b; a=b; b=t; printf("a=%d,b=%d,t=%dn",a,b,t); } printf("acd=%dn",a); return 0; }



