编程语言
首页 > 编程语言> > 4 程序流程结构

4 程序流程结构

作者:互联网

4 程序流程结构

4.1 概述

C语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。

4.2 选择结构

4.2.1 if语句

image-20220110162100766

#include <stdio.h>

int main()
{
int a = 1;
int b = 2;

if (a > b)
{
printf("%d\n", a);
}

return 0;
}

4.2.2 if…else语句

image-20220110162116346

#include <stdio.h>
int main()
{
int a = 1;
int b = 2;

if (a > b)
{
printf("%d\n", a);
}
else
{
printf("%d\n", b);
}
return 0;
}

4.2.3 if…else if…else语句

image-20220110162133019

#include <stdio.h>

int main()
{
unsigned int a;
scanf("%u", &a);

if (a < 10)
{
printf("个位\n");
}
else if (a < 100)
{
printf("十位\n");
}
else if (a < 1000)
{
printf("百位\n");
}
else
{
printf("很大\n");
}

return 0;
}

案例:

// 三只猪比较那个最重
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main09(void)
{
int a, b, c;
printf("请输入三只小猪体重:\n");
scanf("%d%d%d", &a, &b, &c);

if (a > b)
{
if (a > c)
{
printf("小猪A最重\n");
}
else
{
printf("小猪B最重\n");
}
}
else
{
if (b > c)
{
printf("小猪B最重\n");
}
else
{
printf("小猪C最重\n");
}
}

return 0;

}

4.2.4 三目运算符

#include <stdio.h>

int main()
{
int a = 10;
int b = 20;
int c;

if (a > b)
{
c = a;
}
else
{
c = b;
}
printf("c1 = %d\n", c);

a = 1;
b = 2;
c = ( a > b ? a : b );
printf("c2 = %d\n", c);

return 0;
}

4.2.5 switch语句

#include <stdio.h>

int main()
{
char c;
c = getchar();

switch (c) //参数只能是整型变量
{
case '1':
printf("OK\n");
break;//switch遇到break就中断了
case '2':
printf("not OK\n");
break;
default://如果上面的条件都不满足,那么执行default
printf("are u ok?\n");
}
return 0;
}

案例:

// 根据输入的数字来判断成绩所处的范围
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void)
{
int score;
scanf("%d", &score);
switch (score / 10)
{
case 10:
printf("优秀\n");
break;
case 9:
printf("优秀\n");
break;
case 8:
printf("良好\n");
break;
case 7:
printf("及格\n");
break;
case 6:
printf("及格\n");
break;
default:
printf("不及格\n");
break;
}
}

4.3 循环结构

4.3.1 while语句

image-20220110162337488

#include <stdio.h>

int main()
{
int a = 20;
while (a > 10)
{
scanf("%d", &a);
printf("a = %d\n", a);
}

return 0;
}

案例:

// 敲桌子游戏,凡是带7或者7的倍数的需要敲桌子,否则正常输出
int main(void)
{
int i = 1;
while (i <= 100)
{
i++;
// 7的倍数 || 个位带7 || 十位带7
if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7)
{
printf("敲桌子\n");
}
else
{
printf("%d\n", i);
}
}
}

4.3.2 do…while语句

image-20220110162325071

#include <stdio.h>

int main()
{
int a = 1;
do
{
a++;
printf("a = %d\n", a);
} while (a < 10);

return 0;
}

案例:

// 从100-999 求出各个 位数 的立方和相加等于这个数本身的数
#include<stdio.h>
int main(void)
{
int i = 100;
do
{
// 取出个位数
int a = i % 10;

// 取出十位数
int b = i / 10 % 10;

// 取出百位数
int c = i / 100;
if (a*a*a + b*b*b + c*c*c == i)
{
printf("%d\n", i);
}
i++;
} while (i <= 999);
return 0;
}
// 函数初次使用-从100-999 求出各个 位数 的立方和相加等于这个数本身的数
#include<stdio.h>
#include<math.h>
int main(void)
{
int i = 100;
do
{
//个位数
int a = i % 10;

// 十位数
int b = i / 10 % 10;

// 百位数
int c = i / 100;

if (pow(a,3) + pow(b,3) + pow(c,3) == i)
{
printf("%d\n", i);

}
i++;
} while (i <= 999);
return 0;
}

4.3.3 for语句

#include <stdio.h>

int main()
{
int i;
int sum = 0;
for (i = 0; i <= 100; i++)
{
sum += i;

}

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

return 0;
}
// 猜数字游戏
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
#include<stdlib.h >
int main(void)
{
// 产生随机数
// 1.导入头文件 time.h stdlib.h
// 2.添加随机数种子
// 3.获取随机数
srand((unsigned int)time(NULL));

int value=rand()%100;
int num;
for (;;)
{
printf("请输入数字: \n");
scanf("%d",&num);
if (value > num)
{
printf("您输入的数太小了\n");
}
else if (value < num)
{
printf("您输入的数太大了\n");
}
else
{
printf("恭喜你猜对了\n");
break;
}
}
return 0;
}

4.3.4 嵌套循环

循环语句之间可以相互嵌套:

#include <stdio.h>

int main()
{
int num = 0;
int i, j, k;
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
for (k = 0; k < 10; k++)
{
printf("hello world\n");
num++;
}
}
}

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

return 0;
}
// 编写时钟
#include<stdio.h>
#include<Windows.h>
int main(void)
{
for (int i = 0; i < 24; i++)
{
for (int j = 0; j < 60; j++)
{
for (int k = 0; k < 60; k++)
{
system("cls");
printf("%02d:%02d:%02d\n", i, j, k);
Sleep(950);
}
}
}
}
// 九九乘法表(顺序)
#include<stdio.h>
int main(void)
{
int i;
int j;
for (int i = 1; i <= 9 ; i++)
{
for (int j = 1; j <= i; j++)
{
printf("%d * %d = %d\t", i, j, i * j);
}
printf("\n");
}
return 0;
}
// 九九乘法表(到序)
#include<stdio.h>
int main(void)
{
int i;
int j;
for (int i = 9; i >= 1 ; i--)
{
for (int j = 9; j >= i; j--)
{
printf("%d * %d = %d\t", i, j, i * j);
}
printf("\n");
}
return 0;
}

4.4 跳转语句break、continue、goto

4.4.1 break语句

在switch条件语句和循环语句中都可以使用break语句:

#include <stdio.h>

int main(void)
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (j == 5 )
{
break; //跳出for (j = 0; j < 5; n++)
}
printf("%d %d\n", i, j);
}
if (i == 6)
{
break; //跳出for (i = 0; i < 6; n++)
}
}
return 0;
}

4.4.2 continue语句

在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用continue语句。

#include<stdio.h>

int main(void)
{
for (int i = 0; i < 100; i++)
{
if (i % 2 == 1) //如果i是一个偶数,执行if语句中的代码
{
continue; //结束本次循环
}
printf("%d\n", i);
}
}

4.4.3 goto语句(无条件跳转,尽量少用)

#include <stdio.h>

int main(void)
{
printf("hello world1\n");
printf("hello world2\n");
goto FLAG; //无条件跳转到flag的标识
printf("hello world3\n");
printf("hello world4\n");
FLAG:
printf("hello world5\n");
printf("hello world6\n");
return 0;
}
int main(void)
{
int i = 0, j = 0, k = 0;
for (i = 0; i < 10; i++)
{
if (i == 5 )
{
goto END;
}
printf("i=%d\n", i);
}
for (j = 0; j < 10; j++)
{
printf("j=%d\n", j);
}
for (k = 0; k < 10; k++)
{
END:
printf("k=%d\n", k);
}
return 0;
}

 

标签:语句,10,int,程序流程,++,printf,main,结构
来源: https://www.cnblogs.com/weicunqi/p/15853187.html