标签:语句 字符 ch 执行 C语言 跳转 else 输入 分支
if语句
该程序读取一列数据,每个数据都表示每日的最低温度(℃),然后打印统计的总天数和最低温度在0℃以下的天数占总天数的百分比。程序中的循环通过scanf()读入温度值。while循环每迭代一次,就递增计数器增加天数,其中的if语句负责判断0℃以下的温度并单独统计相应的天数。
#include<stdio.h>
int main(){
float temp;
float sum1,sum2;
sum1=sum2=0.0;
printf("enter lowest temp:");
while (scanf("%f",&temp)==1){
if(temp<0){
sum1=sum1+1.0;
}
sum2=sum2+1.0;
printf("enter lowest temp:");
}
printf("占比:%.2f\n",sum1/sum2);
return 0;
}
语法结构:
if(表达式)
语句;
表达式为真,执行语句;表达为假,跳过语句
if else语句
if(表达式)
语句1;
else
语句2;
表达式为真,执行语句1,表达式为假,执行语句2。
//多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
表达式1为真,执行语句1,表达2为真,执行语句2,两者都不为真,则执行语句3.
注意else的匹配:else是和离他最近的if匹配,如下面代码:
#include<stdio.h>
int main(){
int a=0;
int b=2;
if(a==1)
if(b==2)
printf("hhaha\n");
else
printf("heheh\n");
}
上述代码,在执行打印时,并不会输出任何结果,原因是else与最近的if匹配,而最外层的if由于判断语句为假,不会执行里面的内容,所以整个都会执行。
getchar与putchar函数
#include<stdio.h>
#define SPACE ' '//定义宏变量,用space代替空格
int main(){
char ch;
ch=getchar();//字符输入函数
while(ch!='\n'){//执行循环,判断当输入语句为换行时退出循环
if(ch==SPACE){//执行判断,判断输入的字符是否为空格
putchar(ch);//如果输入的字符时空格,直接输出该字符空格
}
else{//如果输入的字符不是空格
putchar(ch+1);//则对应ascll码值加1,编程下一个字符
}
ch=getchar();//保证循环继续执行,于是在输入下一字符
}
putchar(ch);//当上述循环结束时,最后输入的字符串时\n,执行换行的功能
return 0;
}
// CALL ME HAL .点的ascll码值加1为/
// DBMM NF IBM/
// 请按任意键继续. . .
注意上述程序,如果将ch=getchar();while(ch!='\n')换成while(ch=getchar()!='\n')会出现错误,由于!=的优先级高于=,则在执行上面语句时,会先执行!=语句,执行结果无非是真或者假,那么,在赋值给ch后,ch的值也就只有真或假了。
ctype.h系列的字符函数
C 有一系列专门处理字符的函数,ctype.h头文件包含了这些函数的原型。这些函数接受一个字符作为参数,如果该字符属于某特殊的类别,就返回一个非零值(真);否则,返回0(假)。
// 只替换字母,除字母外,其他一律不更换
#include<stdio.h>
#include<ctype.h>
// #define SPACE ' '//定义宏变量,用space代替空格
int main(){
char ch;
ch=getchar();//字符输入函数
while(ch!='\n'){//执行循环,判断当输入语句为换行时退出循环
if(isalpha(ch)){//isalpha函数判断ch是否为字母,如果为字母,则判断为真
putchar(ch+1);
}
else{//如果输入的字符不是空格
putchar(ch);
}
ch=getchar();//保证循环继续执行,于是在输入下一字符
}
putchar(ch);//当上述循环结束时,最后输入的字符串时\n,执行换行的功能
return 0;
}
ctype.h文件头中的字符测试函数
ctype.h头文件中的字符映射函数
逻辑运算符
标签:语句,字符,ch,执行,C语言,跳转,else,输入,分支 来源: https://www.cnblogs.com/ding-c/p/16528490.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。