if--(else)语句,getchar()和putchar()、&&、||、!逻辑运算符

简介:

1、if 语句;示例程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
int  main()
{
const  int  FREEEZING=0;
float  temperature;
int  cold_days=0;
int  all_days=0;
printf ( "enter the list of daily low temperatures.\n" );
printf ( "use Celsius,and enter q to quit.\n" );
while ( scanf ( "%f" ,&temperature)==1)
{
all_days++;
if (temperature<FREEEZING)
cold_days++;
}
if (all_days!=0)
printf ( "%d days total:%.lf%% were below freezing.\n" ,all_days,100.0*( float ) cold_days/all_days);
if (all_days==0)
printf ( "\a No data entered!\n" ); //报警提示一声并无输入
return  0; 
}

运行结果:

wKiom1mAQKaBB_8bAAAeGmS4oMY122.png

wKiom1mAQKeSlkzjAAAfhbo9YzQ107.png

注释程序:while循环的判断条件利用scanf()的返回值遇到非数字输入时循环终止。用float而不是int来声明temperature,这样程序就能接受如上输入格式,复数也是可以的。

◆if()语句被称为分支语句(branching statement)或者是选择语句(selection statement),因为它提供了一个交汇点,在此处程序需要选择两条分支中的一个继续前进,一般的形式如下:if(expression)

 statement

如果expression值为真就执行statement;

◆if 还可以是符合语句:例如:if(a>b)

{

c++;

printf("   ");

}注意即使if使用了一个复合的语句,整个if结构仍将被看做是一个简单的语句。

2、if else 语句

注意if()复合语句的完整性,一对{}表征结束。

1
2
3
4
5
6
if (x>0)
{   printf ( "    " );
    x++;
}
else
  printf ( "    " );

3、介绍getchar()和putchar()

getchar()函数没有返回值,它返回来自输入设备的下一个字符,例如:

ch=getchar()就相当于scanf("%c",&ch);

putchar()函数打印他的参数,putchar就相当于printf("%c",ch);

ctype.h系列字符函数

实例程序;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
#include<ctype.h>
int  main()
{
char  ch;
while ((ch= getchar ())!= '/n' )
{
if  ( isalpha (ch)) //如果是一个字母
     putchar (ch+8); //输出其后的第八个
else
     putchar (ch); //否则,原样输出,比如逗号啥的 都照常打印。
}
     putchar (ch);
return  0;
}

运行结果:

wKiom1mBP1zQTjKqAAAJ4obxy6c007.png

还可以适用于简单的加密算法呢,不这过个安全度太低,还是比较适合于平时简单的练习,

4、判断素数,如果不是求因子。

示例程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<stdio.h>
//#include<stdbool.h>
int  main()
{
unsigned  long  num;
unsigned  long  div ; //约数
int  isPrime; //素数的标志
printf ( "please enter the integer for analysis " );
printf ( "enter q to quit.\n" );
while ( scanf ( "%lu" ,&num)==1)
{
for ( div =2,isPrime=1; div * div <=num; div ++)
{
if  (num% div ==0)
{ if (( div * div )!=num)
printf ( "%lu is divisible by %lu and %lu.\n" ,num, div ,num/ div );
else
printf ( "%lu is divisible by %lu.\n" ,num, div );
isPrime=0; //不是素数
}
}
if (isPrime)
printf ( "%lu is prime.\n" ,num);
printf ( "please enter the another number to anlysis:" );
printf ( "enter q to quit.\n" );
}
printf ( "bye.\n" );
return  0;
}

运行结果:

wKiom1mBSQDxjjo_AAA8ityqnNE004.png

5、if语句使用总结;

形式1:

1
2
if (expression)
         statement //如果expression为真,则执行statement。

形式2:

1
2
3
4
if (expression)
    statement 1
       else
     statement 2 //如果expression为真,则执行statement1,如果为假,则执行statement 2.

形式3:

1
2
3
4
5
6
if (expression 1)
      statement 1
  else  if (expression 2)
   statement 2
else
statement 3 //如果expression 1 为真,则执行statement 1.expression1为假而expression2 为真则执行statement 2,否则这两个表达式都为假,则执行表达式3.

6、逻辑运算符

注意范围中应用:&&

可以把&&应用于测试范围,例如要检查90到100范围内的得分,可以这样做:

if(range>=90 && range<=100)

printf("good show!");

而如果你写成了:

if(90<=range<=100)

printf("good show!");//该代码是语义错误,计算机胡给出警告可能,不是编译错误。因为对于<=运算符的求值顺序是从左向右的,所以会把该测试表达式的值解释如下:(90<=range)<=100.自表达式90<=range 的值为0或者是1,但是不管是0或者是1,对于后面的<=100都是对的,所以此时你无论输入什么数进去都不会进行筛选了。



本文转自 lillian_trip 51CTO博客,原文链接:http://blog.51cto.com/xiaoqiaoya/1952763,如需转载请自行联系原作者

相关文章
|
2月前
|
C语言
在C语言中的break语句
在C语言中的break语句
12 0
|
2月前
getchar()&putchar()函数
getchar()&putchar()函数。
11 1
|
4月前
|
数据安全/隐私保护
scanf与getchar连用的注意事项
这里主要讲述scanf函数和getchar函数连续使用的注意事项
33 2
|
5月前
|
编译器 C语言
深入理解和运用C语言中的Break语句
深入理解和运用C语言中的Break语句
|
5月前
|
C# 图形学
【Unity 3D】C#控制语句break、continue及算数运算符和逻辑运算符的讲解(附测试代码)
【Unity 3D】C#控制语句break、continue及算数运算符和逻辑运算符的讲解(附测试代码)
33 1
|
6月前
|
C语言
选择结构程序设计和循环控制(if语句,switch语句,条件运算符,for循环,while及do while语句,break,continue,goto语句)折半查找法及猜数字游戏带你巩固理解
选择结构程序设计和循环控制(if语句,switch语句,条件运算符,for循环,while及do while语句,break,continue,goto语句)折半查找法及猜数字游戏带你巩固理解
34 0
|
7月前
getchar() & putchar() 函数
getchar() & putchar() 函数。
112 2
|
10月前
|
C语言 数据安全/隐私保护
【C语言】getchar与scanf输入函数注意事项
【C语言】getchar与scanf输入函数注意事项
58 0
|
10月前
|
缓存 C语言 数据安全/隐私保护
分支与循环:if和else语句?switch语句?EOF是什么?缓冲区是什么?getchar怎么用?fflush不能用?
分支与循环:if和else语句?switch语句?EOF是什么?缓冲区是什么?getchar怎么用?fflush不能用?
|
11月前
|
C语言
C语言常见输入函数(scanf(),getchar(),getche(),getch(),gets())大汇总
C语言常见输入函数(scanf(),getchar(),getche(),getch(),gets())大汇总
70 0