1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > c语言循环程序怎么编程 c语言程序(5):循环结构程序设计

c语言循环程序怎么编程 c语言程序(5):循环结构程序设计

时间:2021-06-02 01:54:17

相关推荐

c语言循环程序怎么编程 c语言程序(5):循环结构程序设计

#include

#include

#include

/*

循环结构:

1.基本循环语句

while循环

do_while循环

for循环

1.1 所有的的循环,都是满足条件循环

1.2 while循环

while(条件)

{

循环体;

}

1.3 kbhit() :监测键盘是否按键,

1.4

do

{

循环体;

}while(count<3);

1.5 for循环

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

{

语句4;

}

执行过程: 1 2 4 3 2 4 3

表达式1:写循环变量的初始化

表达式2:循环条件

表达式3:循环条件的改变

2.跳转语句

break;

continue;

goto;

3.循环的作用

3.1 处理重复或者具有规律的事情

3.2 递推的数学问题

3.3 控制交互的循环

*/

int main()

{

//描述一个鼓掌的过程

//次数去控制循环的次数

int count = 0;

while (count<3)

{

printf("啪啪啪!\n");

count++;//改变条件变量

}

count = 0;

while (count++<3)

printf("啪啪啪!\n");

//count++;//改变条件变量

do //无论条件成立与否都会执行一次

{

printf("无论条件成立与否,都会执行一次!\n");

} while (0);

count = 0;

do

{

printf("啪啪啪!\n");

} while (count++ < 3); //注意点后面一定要有 “ ; ”

printf("for循环:\n");

for (int i = 0; i < 3; i++)

{

printf("啪啪啪!\n");

}

//printf("i=%d\n", i); 未定义的变量的,i作用于只在循环中有效

printf("缺省:\n");

count = 0;

for (; count < 3; ) //表达式可以缺省,但是 “ ; ” 必须写

{

printf("啪啪啪!\n");

count++;

}

按键暂停功能的实现

//while (1)

//{

//printf("唱歌中!....\n");

//if (_kbhit ( )) // 包含头文件 #include ;监视键盘,按键暂停

//{

system("pause");

//int userKey = _getch();

//if (userKey == ' ')

//{

//while (_getch() != ' ');//第一次按键是空格,只有但第二次用户输入的是空格时,才会暂停。

//}

//}

//}

system("pause");

return 0;

}

#include

#include

/*

break; --->跳出整条复合语句 ,即跳出一条循环

conitnue;

一般都是结合选择结构使用 ,结束当前循环,开启下次循环。

goto:一般描述逻辑尽量不适用,原来操作函数的函数的状态可以用-->在同一个函数中跳转

当标签在上面的的时候, 需要 “ ; ”去做间隔

*/

int main()

{

//1.break跳出switch语句

//2.break 在循环中只跳出一层循环

CODE:

;

int count = 0;

while (1)

{

printf("我在鼓掌!\n");

count++;

if (count == 3)

break;

}

printf("我退出无限循环\n");

goto CODE;

count = 0;

while (1)

{

printf("我在鼓掌!\n");

count++;

if (count == 3)

goto NEXT;

}

NEXT:

printf("我退出无限循环\n");

//count = 0;

//while (1)

//{

//count++;

//if (count == 3)

//continue;//提高效率

//printf("第 %d 次 鼓掌!\n",count);

//

//}

system("pause");

return 0;

}

//循环的基本使用:

#define _CRT_SECURE_NO_WARNINGS

#include

#include

int main()

{

//3.1 处理重复或者具有规律的事情

//3.1.1 处理重复-->逆序操作

printf("逆序操作!\n");

int num = 1234567;

while (num)

{

printf("%d", num % 10);

num /= 10;//递推--->循环 递归--->函数里面

}

printf("\n");

//3.2 递推的数学问题

//求和,求阶乘

int sum = 0;

for (int i = 0; i <= 100; i++)

{

sum += i;

}

printf("求和:%d\n", sum);

//求1/2+1/3+....1/n;

int x;

scanf("%d", &x);

float result = 0;

for (int i = 2; i <= x; i++) //++运算符只能用在整数里面,小数里面没有++运算符。

{

result += 1.0 / i; //描述有规律的事物一定要注意类型问题

}

printf("%.4f\n", result);

//3.3 控制交互的循环

while (1)

{

printf("0.退出\n1.xxx\n2.ooo\n");//游戏菜单

int choice = 0;

scanf("%d", &choice);

switch (choice)

{

case 0:

printf("正常退出!");

system("pause");

//exit(0)

break;

case 1:

break;

case 2:

break;

}

if (choice == 0)

{

break;

}

system("pause");

system("cls");

}

printf("循环外面!\n");

system("pause");

return 0;

}

//循环嵌套的含义:

#include

#include

/*

任何循环之间都可以嵌套

代表的是一种类似于乘法的一种规律描述

或者是一种具有表格特性的规律的描述

习惯于用外层循环描述行的变化 内层循环描述列的变化

*/

int main()

{

int count = 10;

for (int i = 0; i < count; i++)//外循环

{

for (int j = 'A'; j < 'A'+10; j++) //内循环

{

printf("%d%C\t", i, j);//i每是一个数,j都要循环10次,所以j共循环100次。

}

printf("\n");

}

/*

行: 列

***** 1 5个* 6-1

**** 2 4 6-2

***3 3 6-3

**4 2 6-4

*5 1 6-5

6-i

*/

for (int i = 1; i <= 5; i++)

{

for (int j = 6 - i; j >= 1; j--)

{

printf("*");

}

printf("\n");

}

/*

1111*11

111***23

11*****35

1******* 47

********* 59

2*i-1 //简单的方法,套公式

*/

for (int i = 1; i <= 5; i++)

{

for (int j = 5 - i; j >= 1; j--)

{

printf(" ");

}

for (int k = 1 ; k <= 2*i-1 ; k++)

{

printf("*");

}

printf("\n");

}

system("pause");

return 0;

}

#define _CRT_SECURE_NO_WARNINGS

#include

#include

int main()

{

//1.求最大公约数和最小公倍数

//9 6 能够同时用两个整数去整除的最大整数就是 :最大公约数

//最大公约数:辗转相除法

//9 6 最大公约数:3

//能被两数整除最小整数:最小公倍数 :18

//数学特性:最小公倍数=两数之积/最大公约数

int firstNum, secondNum,temp;

scanf("%d%d", &firstNum, &secondNum);

int sum = firstNum*secondNum;//准备一点

//1.求最大值:

if (firstNum < secondNum)

{

//交换a和b的值--->杯子倒水

temp = firstNum;

firstNum = secondNum;

secondNum = temp;

}

//前提是对于欧几里得了解(辗转相除法)

while (firstNum%secondNum != 0)

{

/*

1997 / 615 = 3 (余 152)

615 / 152 = 4(余7)

152 / 7 = 21(余5)

7 / 5 = 1 (余2)

5 / 2 = 2 (余1)

2 / 1 = 2 (余0)

*/

temp = secondNum; //占用存储最小的值,防止改变

secondNum = firstNum%secondNum; //第二次除数要是余数

firstNum = temp; //第二的被除数是不是第一次的最小值

}

printf("最大公约数是:%d\n", secondNum);

printf("最小公倍数:%d\n", sum / secondNum);

//求素数: 素数-->除了被1和自身整除的数

int num = 0;

scanf("%d", &num);

//标记法

int flag = 0;

for (int i = 2; i < num; i++)

{

if (num%i == 0)

{

flag = 1;

break;

}

}

if (1==flag) //非零表示真,0表示假

{

printf("该数不是素数!\n");

}

else

{

printf("该数是素数!\n");

}

int flag = 0;

if ("来一个人")

{

if ("他上了女厕所")

{

flag = 1;

}

}

if (flag == 1)

{

printf("女的!\n");

}

else

{

printf("汉子!\n");

}

system("pause");

return 0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。