添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。

假如你现在想让计算机判断一个整数是否为正数,如果是则显示YES,不是则显示NO,应该怎么办呢?。

//判断一个整数是否为正数

# include

# include

int main()

//定义一个变量a

int a;

scanf("%d",&a);

//如果a大于0,则输出YES

if(a>0)

printf("YES");

//如果a小于等于0,则输出NO

if(a<=0)

printf("NO");

return 0;

注意:if()后面没有分号,直接写{}

判断一个数是否为偶数

什么是偶数呢?偶数就是能够被2整除的数,也就是说一个数除以2的余数为0,那么这个数就是偶数。

那么我们现在只需要判断这个数除以2的余数是不是0,即:

如果a除以2的余数与0相等,则输出yes;

如果a除以2的余数与0 不相等,则输出no。

c语言中求余数的运算符号是“%”,所以判断一个数是否为偶数的c语言代码就是:

# include

# include

int main()

int a;

scanf("%d",&a);

if(a%2==0)

printf("yes");

if(a%2!=0)

printf("no");

return 0;

二、分支选择结构之简单的if-else结构

简单的if-else语句的基本结构:

if(判断条件)

······

······

语义是: 如果表达式的值为真,则执行if其后的语句,否则执行else 里的语句。

if()后面没有分号,直接写{},else后面也没有分号,直接写{}。

从键盘读入一个整数,判断它是否为偶数的另一种简便快捷的代码写法如下:

# include

# include

int main()

int a;

scanf("%d",&a);

if(a%2==0)

printf("yes");

printf("no");

return 0;

比较两个整数谁更大,同时打印输出较大的整数。

//比较两个整数大小,并打印输出较大的整数

# include

# include

int main()

int a, b, c;

scanf("%d%d",&a,&b);

//如果a大于b,将a赋值给c,并打印c

if(a>b)

printf("%d",c);

//反之,则将b赋值给c,并打印c

printf("%d",c);

return 0;

我们学习了如何从两个数中找出较大的一个数,那么3个数该怎么办呢?

1.首先,用3个变量a,b,c分别存放从键盘读入的3个数。

2.然后,先比较变量a和b的值,将较大的值赋给变量d。

3.再比较变量d和c的值,如果变量c的值大于变量d的值,则把变量c的值赋给变量d。

4.最后输出变量d的值。

c语言代码为:

//比较3个数的大小,并将最大值打印输出

#include

#include

int main()

//定义a,b,c,d 4个整型变量

int a,b,c,d;

scanf("%d %d %d",&a,&b,&c);

//如果a与b比较,将较大值赋值给d

if(a>b)

//c与d比较,如果c大于d,则将c赋值给d

if(c>d)

printf("%d",d);

return 0;

当然还有另外一种写法,就是比较变量a和b,以及变量a和c的关系,思路如下:

如果 a>=b 并且 a>=c,则输出a;

如果 b>a 并且 b>=c,则输出b;

如果 c>a 并且 c>b,则输出c。

其中“并且”在c语言中用“&&”来表示,这时我们需要来了解一下c语言中的逻辑运算符。

c语言中逻辑运算符:

image.png

逻辑运算的值也是有两种分别为真和假,C语言中用整型的1和0来表示。其求值规则如下:

参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真;

或运算||

参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>=5||5>8,运算结果为真;

参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>8),运算结果为真。

另一种写法的c语言代码:

//判断3个数的大小

#include

int main()

int a,b,c;

scanf("%d %d %d",&a,&b,&c);

//如果 a>=b 并且 a>=c,则输出a;

if(a>=b && a>=c)

printf("%d",a);

//如果 b>a 并且 b>=c,则输出b;

if(b>a && b>=c)

printf("%d",b);

//如果 c>a 并且 c>b,则输出c。

if(c>a && c>b)

printf("%d",c);

return 0;

比较3个数的大小,并从大到小排序输出。

第一种方法:

如果a>=b 并且 b>=c,打印a b c;

如果a>=c 并且 c>b,打印a c b;

如果b>a 并且 a>=c,打印b a c;

如果b>=c 并且 c>a,打印b c a;

如果c>a 并且 a>=b,打印c a b;

如果c>b 并且 b>a,打印c b a;

代码如下:

//比较排序3个数字大小,从大到小输出

#include

int main()

int a,b,c,t;

scanf("%d %d %d",&a,&b,&c);

//如果a>=b 并且 b>=c,打印a b c;

if(a>=b && b>=c)

printf("%d %d %d",a,b,c);

//如果a>=c 并且 c>b,打印a c b;

if(a>=c && c>b)

printf("%d %d %d",a,c,b);

//如果b>a 并且 a>=c,打印b a c;

if(b>a && a>=c)

printf("%d %d %d",b,a,c);

//如果b>=c 并且 c>a,打印b c a;

if(b>=c && c>a)

printf("%d %d %d",b,c,a);

//如果c>a 并且 a>=b,打印c a b;

if(c>a && a>=b)

printf("%d %d %d",c,a,b);

//如果c>b 并且 b>a,打印c b a;

if(c>b && b>a)

printf("%d %d %d",c,b,a);

return 0;

第二种方法(称之为“换位法”):

1.先将a与b比较,如果a

2.将a与c比较,如果a

3.将b与c比较,如果b

c语言代码为:

//“换位法”从大到小,排序三个数大小

#include

int main()

int a,b,c,t;

scanf("%d %d %d",&a,&b,&c);

//1.先将a与b比较,如果a

//2.将a与c比较,如果a

//3.将b与c比较,如果b

printf("%d %d %d",a,b,c);

return 0;

分支选择结构之嵌套if-else语句

C语言中嵌套if-else语句。嵌套if-else语句的意思,就是在if-else语句中,再写if-else语句。其一般形式为:

if(判断条件)

if(判断条件)

执行代码块;

执行代码块;

执行代码块;

先回顾一下之前写的比较3个数大小的代码,然后思考如何用“嵌套”的方式来解决这个问题。

在之前我们使用“&&”这个逻辑关系运算符号来解决两个条件同时“满足”的需求

if(a>=b && a>=c)

print("%d",a);

上述代码,可以用“嵌套”的方式写成:

//如果a大于等于b,再进一步讨论a与c的关系

if(a>=b)

//如果a大于等于c成立,则输出a,不成立则输出c

if(a>=c)

printf("%d",a);

printf("%d",c);

那如果a大于等于b不成立呢,我们的完整代码该如何编写呢?

//if-else嵌套,判断三个数大小

#include

int main()

int a,b,c;

scanf("%d %d %d",&a,&b,&c);

if(a>=b)

if(a>=c)

printf("%d",a);

printf("%d",c);

if(b>=c)

printf("%d",b);

printf("%d",c);

return 0;

如何把代码修改的更简洁呢?

当if或else语句后只需执行一条代码时,可省略{ }。

if-else if 结构

95 “A”;86~100 “A”;70~85 “B”;60~69“C”;小于60“D”

要求输入A B C D ,输出成绩范围。

定义char grade 用if else实现

# include

int main()

char grade;

printf("请输入等级:");

scanf("%c",&grade);

if(grade=='A')

printf("分数在86~100分");

else if(grade=='B')

printf("分数在70~85分");

else if (grade=='C')

printf("分数在60~69分");

else if(grade=='D')

printf("分数在60分以下");

else if(grade != 'A' ||grade != 'B' || grade !='C' ||grade !='D')

printf("输入错误!");

return 0;

switch 分支选择

#include

int main()

char grade;

scanf("%c",&grade);

switch(grade)

case 'A':printf("分数在86~100分"); break;

case 'B':printf("分数在70~85分"); break;

case 'C':printf("分数在60~69分"); break;

case 'D':printf("分数在60以下"); break;

default:printf("输入错误!");

从键盘输入一个月份,输出对应季节

12~2 冬季

3~5 春季

6~8 夏季

9~11 秋季

//从键盘输入一个月份,输出对应季节

12~2 冬季

3~5 春季

6~8 夏季

9~11 秋季

#include

int main()

int number ;

printf("请输入一个1~12的月份,以回车结束\n");

scanf("%d",&number);

switch (number) {

case 12:

case 1:

case 2:

printf("冬季");

break;

case 3:

case 4:

case 5:

printf("春季");

break;

case 6:

case 7:

case 8:

printf("夏季");

break;

case 9:

case 10:

case 11:

printf("秋季");

break;

default:

printf("输入错误!\n");

break;

return 0;

输入一个不多于5位的正整数

1)输出位数

2)分别输出每位数字,中间为“,”分隔开

3)反向输出5位数

#include

int main()

int num, ten_th,thous,hund,ten,indiv;

printf("请输入一个不多于5位的正整数:");

scanf("%d",&num);

if(num>9999 && num <=99999)

printf("这个数是一个五位数:");

ten_th=num/10000;

thous=(num-ten_th*10000)/1000;

hund=(num-ten_th*10000-thous*1000)/100;

ten=(num-ten_th*10000-thous*1000-hund*100)/10;

indiv=num%10;

printf("%d,%d,%d,%d,%d\n",ten_th,thous,hund,ten,indiv) ;

printf("反向输出:%d%d%d%d%d",indiv,ten,hund,thous,ten_th) ;

else if(num<=9999&&num>999)

printf("这个数是一个四位数:");

thous=num/1000;

hund=(num-thous*1000)/100;

ten=(num-thous*1000-hund*100)/10;

indiv=num%10;

printf("%d,%d,%d,%d\n",thous,hund,ten,indiv) ;

printf("反向输出:%d%d%d%d",indiv,ten,hund,thous) ;

else if(num<=999&&num>99)

printf("这个数是一个三位数:");

hund=num/100;

ten=(num-hund*100)/10;

indiv=num%10;

printf("%d,%d,%d\n",hund,ten,indiv) ;

printf("反向输出:%d%d%d",indiv,ten,hund) ;

else if(num<=99&&num>9)

printf("这个数是一个两位数:");

ten=num/10;

indiv=num%10;

printf("%d,%d\n",ten,indiv) ;

printf("反向输出:%d%d",indiv,ten) ;

else if(num>=0 && num<=9)

printf("这个数是一个一位数:");

printf("%d",num);

printf("反向输出:%d",num);

else if (num>99999 || num < 0)

printf("输入错误!");

return 0;

如何判断一个整数是否为正数计算机同我们一样,也是可以判断大小。在此之前,我们需要先说明在计算机中用来判断两个数关系的符号,即关系运算符。关系运算符号c语言中的关系运算符与数学上学习的有什么不同?image.png关系表达式的值是真和假,在C程序用整数1和0表示。注意:&gt;=, &lt;=, ==, !=这种符号之间不能存在空格。一、分支选择结构之简单的if条件语句if(判断条件){语句1;语句...
第一节 C语言 概述 C程序是由若干源程序构成的,一个源程序中包含了编译预处理命令、全局 变量 的定义、一些用户函数。每个函数又由 变量 定义和若干语句组成。 C语言 最重要的一个特点就是分号作为每条语句的结束符,不可以忽略或缺失 C语言 根据语句执行是否可以改变程序流程,可以分为四类: (1)顺序语句 表达式语句 空语句: 只有一个分号 复合语句:用大括号括起来的一组语句,这组语句被看成一个整体 (2) 选择 语句:用来解决实际应用当中的判断 选择 问题 if(条件){……} else {……} 条件语句 switch (表达式){……} 多 分支 选择 语句 (3)循环语句:解决实际应用需要重复执行问题 for(条件){……} while(条件){……} do{……} while; (4)转移语句:控制程序执行流向 continue; 结束本次循环语句 break; 退出循环语句或结束 switch 语句 goto标号;转向语句 return(表达式);从被调用函数返回到调用函数语句
C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学 C语言 的人来说,经常会出一些连自己都不知道错在哪里的错误。看着有错的程序,不知该如何改起,通过对C的 学习 ,积累了一些C编程时常犯的错误,以供参考。 1、书写标识符时,忽略了大小写字母的区别。 main()   int a=5;   printf(“%d”,A); 编译程序把a和A认为是两个不同的 变量 名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写, 变量 名用小写表示,以增加可读性。 2、忽略了 变量 的类型,进行了
6、 while 7、 do while 自从dijkstra的论文Go To Statement Considered Harmful以后, C语言 代码很少看到goto了。(一般用在多次资源分配的错误处理上) 但,从计算机的角度来说,缺少goto(jmp指令)还真没法干活。其实,goto是最符合我们的设计流程图的。 将一个流程图用goto来实现也最直观。goto能真正让我们做
看着有错的程序,不知该如何改起,本人通过对C的 学习 ,积累了一些C编程时常犯的错误,写给各位学员以供参考。 1、书写标识符时,忽略了大小写字母的区别。 代码如下:main(){  int a=5;  printf(“%d”,A);} 编译程序把a和A认为是两个不同的 变量 名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写, 变量 名用小写表示,以增加可读性。 2、忽略了 变量 的类型,进行了不合法的运算。 代码如下:main(){  float a,b;  printf(“%d”,a%b);} %是求余运算,得到a/b的整余数。整型 变量 a和b可以进行求余运算,而实型
switch 语句在 C语言 中是一种特殊的 分支 结构 ,它可以根据一个 变量 或者表达式来执行不同的语句。它通常是一种替代多重if-else语句的有效方法,可以在不同的情况下执行不同的语句,因此提高代码的可读性和可维护性。它的基本格式如下: switch (表达式){ case 常数1: 语句1; break; case 常数2: 语句2; break; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . default: 语句n; break; }