码迷,mamicode.com
首页 > 其他好文 > 详细

C03 程序逻辑

时间:2018-12-24 23:30:24      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:center   结果   步骤   变量   几种语句   赋值语句   数字   break   结束   

程序逻辑

  • 运算符
  • 顺序结构
  • 选择结构
  • 循环结构

  

运算符

赋值运算符:=

比较运算符:>、<、==、 >=、<=、!=

逻辑运算符:&&、||、!

 

顺序结构

在C语言中,赋值语句、字符数据的输入输出语句、格式输入输出语句这几种语句在执行的时候,程序不会发生流程控制的转移。

赋值语句

赋值符号:=,在C语言中是运算符,运算顺序是从右到左。

例如:赋值表达式  a=b+c+d;

字符输入输出语句

putchar()输出单个字符。例如putchar(‘a’)。

getchar()从终端输入一个字符。例如:char c; c=getchar();

示例代码:

技术分享图片

 

格式输入输出语句

printf(格式控制,输出列表)

scanf(格式控制,地址列表)

常用的格式控制字符:d,c,s,f。

上机练习

需求:要求从键盘输入一个大写字母,改用小写字符输出?

备注:大写字母+32=小写字母。使用getchar()和printf()函数完成。

 

 

选择结构

单分支选择结构

流程图如图所示:

技术分享图片

表达式:

  if(表达式)  语句

示例:

 技术分享图片

该单分支选择结构在解决该问题时有何缺陷?

 

双分支选择结构

流程图:

技术分享图片

 

表达式:

if(表达式) 语句1

else 语句2

示例:

技术分享图片

 

上机练习

需求描述:张三C语言成绩大于98分,而且软件工程成绩大于80分,奖励Pad;或者C语言成绩等于100分,软件工程成绩大于70分,也可以奖励Pad。

提示:复杂条件下的if选择结构

  

多分支选择结构

流程图如图:

技术分享图片

表达式:

if(表达式1) 语句1

else if(表达式2) 语句2

else if(表达式3) 语句3

else if(表达式n-1) 语句n-1

else 语句n

上机练习

需求描述:成绩的转换,控制台输入一成绩,要求输出:

90~100分输出A

80~90分输出B

70~80分输出C

60~70分输出D

50~60分输出E

 

switch选择结构

流程图:同多分支选择结构

表达式:

switch(表达式){

case 常量表达式1:语句1 ; break ;

case 常量表达式2:语句2; break ;

case 常量表达式3:语句3; break ;

… …

case 常量表达式n:语句n; break ;

default:语句n+1; ; break ;

}

示例:根据成绩等级,输出对应分数范围

 技术分享图片

 

上机练习

练习1:修改示例,使之正确输出。

练习2:每周一三五吃食堂,二四六吃法国大餐。

练习3:学生信息管理系统菜单的制作,使用switch选择结构。

 

 

循环结构

循环结构用来处理重复的操作。

循环结构特点:包括循环操作、循环条件,以及循环结构。

技术分享图片 

 

while循环结构

流程图:

技术分享图片

特点:先判断,再循环

 

语法格式:

while ( 循环条件 ) {

循环操作

}

示例:

输入年龄,如果错误,重新进行输入。如果正确,则提示输入正确,退出程序。

技术分享图片

 

 

上机练习

练习:修改学生信息管理系统菜单,使之可以实现菜单的循环操作,选择退出将退出学生信息管理系统。

提示:使用while循环三步骤

1、确定循环条件和循环操作

2、套用while循环格式写出代码

3、确定循环结束条件

  

程序调试

如果程序出错,我们可以进入调试模式:

技术分享图片 

调试步骤(Dev-Cpp):

 技术分享图片

  1. 设置断点
  2. 单步运行
  3. 观察变量(添加查看,输入变量名)

调试步骤(vc6.0):

  1. 选择代码行,alt+f9或者通过编辑菜单进入断点设置.
  2. 单步运行:使用F5或则Go图片单步运行。

 技术分享图片

   3.观察变量(添加查看,输入变量名) 

调试示例

 技术分享图片

 

do…while循环结构

流程图:

技术分享图片

特点:先制定循环操作,在判断循环条件

语法格式:

do {

       循环操作

} while ( 循环条件 );

示例:

问题:老师需要检查张三上机考试是否合格,如果不合格,则继续考试。否则提示考试通过。

 技术分享图片

 

上机练习

练习:使用do……while循环结构修改学生信息管理系统菜单。

 

for循环结构

语法格式和执行顺序:

 技术分享图片

示例:循环输入某同学S1结业考试的5门课成绩,并计算平均分。

 技术分享图片

 

循环的嵌套

示例:输出乘法口诀表

 技术分享图片

 

一维数组

数组的定义

定义一个10个整数的一维数组:

int nums[10]={11,14,-8,6,22,99,107,4,3,2,};

或者

int nums[]={11,14,-8,6,22,99,107,4,3,2,};

问题:如何输出数组中的所有元素?

参考代码:

#include <stdio.h>

 

int main()

{

       int nums[10]={11,14,-8,6,22,99,107,4,3,2,};

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

           printf("%d ",nums[i]);

       }

       printf("\n");

       return 0;

}

  

  

上机练习

二重循环练习

需求:定义一个10个数字的数组,实现冒泡法排序。

提示:冒泡法排序说明

参考代码:

 

#include <stdio.h>

 

int main()

{

       int nums[10]={11,14,-8,6,22,99,107,4,3,2,};

       printf("排序前的数组:");

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

              printf("%d ",nums[i]);

       }

       //冒泡排序

       for(int j=0;j<10-1;j++){

              for(int k=0;k<10-1-j;k++){

                     int temp=0;

                     if(nums[k]>nums[k+1]){

                            temp=nums[k];

                            nums[k]=nums[k+1];

                            nums[k+1]=temp;

                     }

              }         

       }

       printf("\n排序后的数组:");

       for(int m=0;m<10;m++){

              printf("%d ",nums[m]);

       }

       printf("\n\n");

       return 0;

}

  

运行结果: 

技术分享图片

C03 程序逻辑

标签:center   结果   步骤   变量   几种语句   赋值语句   数字   break   结束   

原文地址:https://www.cnblogs.com/rask/p/10171427.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!