for循环语法:

for( 表达式1;表达式2;表达式3)

{

    循环体

}

循环从表达式1开始 - 表达式2(判别表达式)- 真 - 执行循环体 - 表达式3 - 判断表达式2

真 : 继续 — 循环体—表达式3 — 表达式2

假 : 跳出循环(正常情况下,for循环的出口是表达式2

练习:使用for循环,求1-100的和?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <Windows.h>

int main(void)
{
	int i = 0;	//定义i,给初始值
	//定义变量记录累加值
	int sum = 0;	//	初值为0
	for ( i = 1; i <= 100; i++)
	{
		sum = sum + i;
	}
	//循环累加结果
	printf("sum =%d\n", sum);
	return EXIT_SUCCESS;
}
for循环的变换形式

循环因子:a、在for循环之前定义,在for循环,结束后依然能使用。

b、定义for循环之内,for循环结束后,不能使用

for(int i =1; i <= 100; i++)//将定义i 放在for循环内表达式1

{

    sum = sum +i;

}

//循环结束,打印出累加结果

printf("sum = %d, i= %d\n", sum, i);

int  i= 1;    //    定义循环因子

int sum =0;

for ( ; i<=100; i++)    //不写表达式1

{

    sum = sum +1;

}

省略表达式2

int  i= 1;    //    定义循环因子

int sum =0;

for (  ;  i<=100;  )    //不写表达式1,不写表达式3

{

    sum = sum +1;

    i++;

}
省略表达式3

int  i= 1;    //    定义循环因子

int sum =0;

for (  ;   ;  )    //不写表达式2,相当于for(;1 ;)表达式2为真(1),这出现一个死循环

{

    printf("i =%d\n", i);

    i++;

}    //    死循环

解决死循环的方法是:
方法1:for( ;  ;)
方法2:while

练习:猜数字游戏,产生一个随机数,用户键盘输入一个数据,程序提示用户输入的数据><=随机数,用户根据提提示不断变换输入,最终猜中产生的随机数?
1、添加一个随机数,作用,保证随机数真正的随机
srand ( time (NULL)); //固定写法
//time(NULL):获取系统当前时间,unsigned long long 类型
//srand() : 函数来生成随机数,使用系统时间为算法的系统
2、添加头文件
//srand()—(stdlib.h)
//time() —(time.h)
3、生成随机数

int n = rand() %100;    //随机数范围:0-99;
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <Windows.h>

int main(void)
{
	/*练习:猜数字游戏,产生一个随机数,用户键盘输入一个数据,程序提示用户输入的数据 > <= 随机数,用户根据提提示不断变换输入,最终猜中产生的随机数?
		1、添加一个随机数,作用,保证随机数真正的随机
		srand(time(NULL)); //固定写法
		//time(NULL):获取系统当前时间,unsigned long long 类型
		//srand() : 函数来生成随机数,使用系统时间为算法的系统
	2、添加头文件
		//srand()—(stdlib.h)
		//time() —(time.h)
		3、生成随机数
		int n = rand() % 100;     //随机数范围:0-99;
	*/

	//生成随机数
	srand(time(NULL));
	//生成随机数 n
	int n = rand() % 100;	//范围0-99
	int num;	//定义num 变量,给用户输入数据
	//创建一个死循环,给用户猜数字
	for(;;)
	{
		//获取用户输入数据
		scanf("%d", &num);
		//提示用户
		if (num > n)
		{
			printf("猜大了!\n");
		}
		else if (num < n)
		{
			printf("猜小了!\n");
		}
		else 
		{
			printf("猜中了!\n");
			break;
		}
	}
	printf("中将数:%d\n", n);
	return EXIT_SUCCESS;
}

嵌套for循环

int i =0;  //外层循环的循环因子

int j = 0;    //内层循环的循环因子

for( i =0; i <10; i++)

{

        for( j =2; j <10; j++)

{

    //循环体

    }

}

//外层循环执行一次,内层循环执行一周



嵌套for循环

int i =0;  //外层循环的循环因子

int j = 0;    //内层循环的循环因子

for( i =0; i <10; i++)

{

        for( j =2; j <10; j++)

{

    //循环体

    }

}

//外层循环执行一次,内层循环执行一周
练习:打印电子表
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <Windows.h>

int main02(void)
{
	//打印电子表
	int i, j, k;
	for (i = 0; i < 24; i++)
	{
		for (j = 0; j < 60; j++)
		{
			for (k = 0; k < 60; k++)
			{
				printf("%02d:%02d:%02d\n", i, j, k);
					Sleep(1000);
					system("cls");	//清屏
			}
		}
	}
	return EXIT_SUCCESS;
}
 练习:   //打印九九乘法表
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <Windows.h>

int main03(void)
{
	//打印九九乘法表
	int i, j;
	for (i = 1; i <= 9; i++)
	{
		for (j = 1; j <= i; j++)
		{
			printf("%d*%d=%d\t", j, i, j * i);
		}
		putchar('\n');
	}
	return EXIT_SUCCESS;
}