#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>intmain(){int k =0;for(k =1; k <=10; k++)//(初始化;判断;调整){printf("%d ", k);}for(;;)//三个表达式尽量不要省略,尤其是for之间嵌套{printf("hehe\n");}//for的第一个变种int i =0;int j =0;for(; i <10; i++){for(; j <10; j++){printf("haha\n");}}//由于第二个for省略了初始化语句,所以i=0时第一遍循环j得10,i=1开始第二遍循环时,j没有被重新初始化,所以还是10,循环不会进行下去//for的第二个变种int x, y;for(x =0, y =0; x <2&& y <5;++x, y++){printf("heihei\n");}//例题int m =0;int n =0;for(m =0, n =0; m =0; m++, n++)
k++;//循环一次也不执行,因为判断写的是一个赋值语句,语句值为m的值,为0是假int g =1;do{printf("%d\n",g);
g++;}while(g <=10);
//n的阶乘int n =0;int ret =1;int i =0;printf("输入要阶乘的数字:");scanf("%d",&n);for(i =1; i <= n; i++)//ret不初始化,累积结果{
ret *= i;}printf("阶乘结果:%d\n\n", ret);//n的阶乘和int p;int rec =1;intref=0;int j;int q;printf("计算n阶乘的和:");scanf("%d",&p);for(q =1; q <= p; q++){
rec =1;for(j =1; j <= q; j++)//rec一定要初始化,不然之前的循环结果都累积在一起了,注意j<=q,不是j<=p{
rec *= j;}ref+= rec;}printf("阶乘和的结果:%d\n\n",ref);return0;}