ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

4 程序流程结构

2022-01-28 17:00:20  阅读:143  来源: 互联网

标签:语句 10 int 程序流程 ++ printf main 结构


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语句:

  • 当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。

  • 当它出现在循环语句中,作用是跳出当前内循环语句,执行后面的代码。

  • 当它出现在嵌套循环语句中,跳出最近的内循环语句,执行后面的代码。

#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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有