博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
宋体语句那些苦逼日子的学习(C语言)06
阅读量:6677 次
发布时间:2019-06-25

本文共 6669 字,大约阅读时间需要 22 分钟。

查了好多资料,发现还是不全,干脆自己整理吧,最少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!

    

    

if语句
如果...或者...否则
也就是说,if语句许允序程通过测试表达式的值从两种选项中选择一项。
if语句表达式
if(表达式1){
    语句1;
}else if(表达式2){
    语句2;
}else{
    语句3;
}
语句next;
注意:1.如果if前面没有语句,加上分号
      2.else if 可以现出0 ~ n次
      3.else 可以现出0 ~1次
      4.分支中只有一条一句的时候可以省略{}
面下我们看段代码:
  1. /*
  2. if...else
  3. */
  4. #include <stdio.h>
  5. int main(){
  6.     int salary = 0;
  7.     printf("Please input your monthly salary:");
  8.     scanf("%d",&salary);
  9.     if(salary >= 10000){
  10.          printf("You can fly home---\n");
  11.     }else if(salary >= 5000 && salary < 10000){
  12.          printf("You can take the high-speed rail to go home---\n");
  13.     }else if(salary >= 3000 && salary < 5000){
  14.          printf("You can take the train home---\n");
  15.     }else if(salary >= 1500 && salary < 3000){
  16.         printf("You can take the bus home---\n");
  17.     }else{
  18.         printf("The tragedy of the child, you walk home!\n");
  19.     }
  20.     return 0;
  21. }
复制代码
面下我们看看入输 年 月 ,然后输出这个月有多少天
  1. /*入输年代,输出这个月有多少天*/
  2. #include <stdio.h>
  3. int main(){
  4.      int year = 0,month = 0;
  5.      printf("Please enter the year and month:");
  6.      scanf("%d%d",&year,&month);
  7.      if(month == 4 || month == 6 || month == 9 || month == 11){
  8.          printf("This month 30 days\n");
  9.      }else{
  10.          if(month != 2){
  11.              printf("This month 31 days\n");
  12.          }else{
  13.              if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
  14.                   printf("This month 29 days\n");
  15.             }else{
  16.                  printf("This month 28 days\n");
  17.            }
  18.        }
  19.      }
  20.     return 0;
  21. }
复制代码
要注意,在
if
语句的模版中,语句是一条而不是多条,如果想要
if
语句出口
i
两条或者更多条语句,可以应用复合语句
复合语句:
一对大括号
{}
括起来的一组语句,看成一条语句来理处,
{
....
....
}
就近准则:多个
if
后跟
else
的时候,
else
老是与近最的
if
相搭配
switch
语句
在某些情况下 ,须要表达式和多个值行进比拟,找出匹配的值数,行执特定的操纵
C
语言供给了
switch
语句作为
if
语句的换替
switch(
控制表达式
){
    case 
常量表达式
1:
语句
1; break;
    case 
常量表达式
2:
语句
2; break;
    ...
    default:  ....
}
控制表达式:算计结果是整形,不能是浮点数或者字符串。
switch
前面必须着跟由
()
括起来的整形表达式。
C
语言把字符看成数整来理处,因此
switch
也可以对字符行进判断
常量表达式:不能包括量变或者函数用调,终究结果必须是数整。常量表达式很像通普的表达式,但是不能包括量变或者函数的用调,
5
是常量表达式,
5+10
也是常量表达式,但是
n+10
不是常量表达式
(
除非
n
是表现常量的宏
)
,分支号标中的常量表达式必须是数整
(
也可所以字符
)
个一每分支中可以包括多条语句,可以不应用
{}
注意:不许允复重的分支存在
各个分支之间的序顺是不定固的。
break
作用:行执
break
语句的时候,致导序程的行执程流跳出
switch
语句,继承行执
switch
前面的语句
须要
break
语句是由于
switch
语句实际上是一种基于算计的跳转,对控制表达式求值的时候,控制会跳转到与
switch
表达式的值数想匹配的分支表利益,分支号标只是一个明说
switch
部内位置的记标。在行执完分支中的最后一条语句的时候,序程控制向下跳转到下一个分支的第一条语句上,从而疏忽了下一个分支号标。如果没有
break
语句
(
或者其他的某种跳转语句
)
,控制将会从一个分支继承到下一个分支。
面下我们看看序程
(
1~100
分之间的得分行进评级
)
  1. #include <stdio.h>
  2. int main(){
  3.     int score = 0;
  4.     printf("Please enter your results:");
  5.     scanf("%d",&score);
  6.     printf("Class:");
  7.     switch((score - 50) / 10){
  8.         case 5:
  9.         case 4:printf("A\n");break;
  10.         case 3:printf("B\n");break;
  11.         case 2:printf("C\n");break;
  12.         case 1:printf("D\n");break;
  13.         default:printf("Fail\n");
  14.     }
  15.     return 0;
  16. }
复制代码
环循语句
环循就是复重行执环循体(
语句块
)
的一种语句,在
C
语言中,个一每环循都有一个控制表达式。每次行执环循体的时候,都要对控制表达式求值。如果表达式为真,那么继承行执环循。
C
语言供给了三种环循语句:
while   do
while    for
语句。当然
goto(
无条件跳转
)
语句也可以行进环循的控制
for
环循
    for
环循很适合在应用”计数”量变的环循中,当然,这不是它的定限
1.for(
表达式
1;
表达式
2;
表达式
3){
    语句
;
}
表达式
1
:环循条件的初始化
表达式
2
:控制环循的条件
表达式
3
:修改环循量变,是环循趋于结束
(
环循的条件为假
)
必定要注意
for环循中各个表达式的行执序顺
看看
for
环循的行执程流图:
未定名1.jpg
  1. #include <stdio.h>
  2. int main(){
  3.     int i = 0;
  4.     for(i = 1;i < 11;i++){
  5.         printf("1 = %2d\n",i);
  6.     }
  7.     return 0;
  8. }
复制代码
2.for
环循的习惯用法
for(i = 0;i < n;i++)...
for(i = 0;i <= n;i++)...
for(i = n;i > 0;i--)...
for(i = n - 1;i >= 0;i--)...
3.在
for
环循中省略表达式
         语句
for
环循远比现在看到的活灵,常通
for
环循用三个表达式来控制环循,但是一些环循可能不须要这么多,因此
C
语言许允省略意任或者部全的表达式
就说下面的那个例子,我们也可以写成这样:
int i = 1;
for(;i < 11;i++){
printf("1 = %2d\n",i);
}
注意:保存第一个表达式和第二个表达式之间的分号,即使省略掉某些表达式,表达式之间的分号也是必须要写的。
上的那个例子,我们还可以这样写:
int i = 1;
for(i = 1;i < 11;){
printf("1 = %2d\n",i++);
}
这个明说白我们也可以应用量变 
在环循体行进自加操纵
但省略掉第二个表达式,那么默为认真,
for
环循不会止终。那么我们可以在环循体中加增
break
语句,跳出环循
但我们省略掉第一个和第三个表达式的时候,那就和
while
环循没什么区别了。
C99
中,语句
for
的第一个表达式可以换替为一个明声,这个特性可以让我们明声一个于用环循的量变
如:
for(int i = 0;i < 10;i++)
....
须要注意的是,应用这样情势编写完序程后之,在编译的时候须要加上 
-std=c99
,这样就不会报错了
如:
  1. #include <stdio.h>
  2. int main(){
  3.     for(int i = 1;i < 11;){
  4.         printf("%2d\n",i++);
  5.     }
  6.     return 0;
  7. }
复制代码
wps_clip_image-6350.png
逗号运算符
某些时候我们可能爱好编写两个
(
或者多个
)
初始表达式,或者希望在没次环循中对几个量变行进自增操纵,应用逗号表达式作为
for
环循语句第一个或者第三个表达式可以实现这些法想:
for(i = 0,j = 0;...;printf(),i++,j--)
表达式
1
,表达式
2
算计程过
第一步:先算计表达式
1
,将算计所得的过记丢掉
第二部:算计表达式
2
,将算计结果作为表达式的终究结果
面下我们写短代码:相信大家的英文水平能看懂哦。
  1. /*
  2. Specifies the number of students, and average scores a total score calculation
  3. */
  4. #include <stdio.h>
  5. int main(){
  6.     int count = 0;//Initialization of the number of students
  7.     printf("Please enter the number of the students:");
  8.     scanf("%d",&count);
  9.     int i = 0; //The loop control variable
  10.     float temp = 0.0;//Temporary storage of student achievement
  11.     float sum = 0.0;//The total score of storage
  12.     for(;i < count;i++){
  13.         printf("Please input the %d grade students:\n",i + 1);
  14.         scanf("%f",&temp);
  15.         sum += temp;
  16.     }
  17.     printf("The total score of the students:%g\nGrade point average:%g\n",sum,sum/count);
  18.     return 0;
  19. }
复制代码
for
环循的嵌套
应用
for
环循嵌套可以实现一些庞杂的算法:
for(){
for(){
....
}
}
略微玩一下,
99
乘法表;嘿嘿
  1. #include <stdio.h>
  2. int main(){
  3.     int i = 1,j = 1;
  4.     for(i = 1;i < 10;i++){
  5.         for(j = 1;j < i + 1;j++){
  6.             printf("%d*%d=%2d\t",j,i,i * j);
  7.         }
  8.         printf("\n");
  9.     }
  10.     return 0;
  11. }
复制代码
while
环循
while(
表达式
)
语句
判断表达式的结果,如果为真,行执语句,返来回继承判断表达式,环循往复,道知表达式的结果为假
int i = 1;
while(i < 11 ){
printf(“%d ”,i++);
}
printf(“\n”);
C
语言中两种经常使用的无限环循
(
死环循
)
方法:
1.while(1)
语句
2.for(;;;)
语句
来点代码:
  1. /* Input number, sum of these numbers*/
  2. #include <stdio.h>
  3. int main(){
  4.     int data = 0;//Data is temporarily stored user input
  5.     int sum = 0;
  6.     while(1){
  7.         printf("Please enter an integer (0: exit):");
  8.         scanf("%d",&data);
  9.         if(data == 0) break;
  10.             sum += data;
  11.     }
  12.     printf("The sum of all integer:%d\n",sum);
  13.     return 0;
  14. }
复制代码
do
while
环循
语句
do
while
do{
环循体
;
}while(
表达式
);
注意:
do - while 
前面有分号
虽然序程中
while
语句现出的次数比
do - while
语句多,但是后者对于最少一次的环循说来非常的便利
  1. /*Calculation of an integer number of bits*/
  2. #include <stdio.h>
  3. int main(){
  4.     int data = 0;
  5.     int count = 0;
  6.     printf("Please enter an integer:");
  7.     scanf("%d",&data);
  8.     do{
  9.         data /= 10;
  10.         count++;
  11.     }while(data != 0);
  12.     printf("The integer number:%d\n",count);
  13.     return 0;
  14. }
复制代码
空语句
1.空语句经经常使用来编写空环循体的环循
2.C
习惯性的把空语句独单放在一行
3.不小心在
if,while,for
中的圆括号后放置分号会创立空语句
break  coutinue
语句
break
switch
语句:跳出
switch
语句
环循语句:跳出环循
coutinue
:只能适用在环循中
结束本次环循,开始下一次环循
  1. /*Judge a prime integer is it right*/
  2. #include <stdio.h>
  3. int main(){
  4.     int data = 0;
  5.     printf("Please enter an integer:");
  6.     scanf("%d",&data);
  7.     int i = 2;
  8.     for(;i < data;i++){
  9.         if(data % i == 0){
  10.             printf("Is not a prime\n");
  11.             break;
  12.         }
  13.     }
  14.     if(i == data)
  15.         printf("prime\n");
  16.     return 0;
  17. }
复制代码
  1. /*Cannot print 1~~30 between 4 integer integer*/
  2. #include <stdio.h>
  3. int main(){
  4.     int i = 1;
  5.     for(;i < 30;i++){
  6.         if(i % 4 == 0){ //If the number is not 4 complete will not print
  7.             continue;
  8.             printf("%d ",i);
  9.         }
  10.     }
  11.     printf("\n");
  12.     return 0;
  13. }
复制代码
goto
语句
无条件跳转
(
不推荐应用
),
就不多做绍介了
label(
标识符
):
语句
;
...
注意标识符的定名范规
不要省略标识符前面的冒号
    每日一道理
人生好似一条河,既有波澜壮阔,汹涌澎湃,也有清风徐来,水波不兴;人生好似一首歌,既有欢乐的音符,也有悲壮的旋律;人生好似一条船,既有一帆风顺时,也有急流险滩处。愿我们都能勇于经受暴风雨的洗礼,接受生活的挑战和考验!

    

 

    

 

    首发址地

文章结束给大家分享下程序员的一些笑话语录: 腾讯总舵主马化腾,有人曾经戏称如果在Z国选举总统,马化腾一定当选,因为只要QQ来一个弹窗”投马总,送Q币”即可。

转载地址:http://nnyao.baihongyu.com/

你可能感兴趣的文章
外媒:清理数据成数据科学家最大挑战
查看>>
载波聚合:保障LTE-A速率的有力武器
查看>>
WHID注入器:在无线环境下实现HID攻击的最新利器
查看>>
智能制造下徐工开启三大改造
查看>>
SOA减低成本提升效率的最有效的思想方法
查看>>
解读:云计算产业“钱”景
查看>>
《认知设计:提升学习体验的艺术》——学习者与你有何不同
查看>>
英国脱欧对中国光伏产业的短期及长期影响
查看>>
Consensus Attention-based Neural Networks for Chinese Reading
查看>>
英国NPCC称网络摄像头勒索案件数量急剧增加 四起自杀事件与此有关
查看>>
热带地区数据中心需要太阳能发电,而不是自然冷却
查看>>
炙手可热的威胁情报!飞塔已应用了15年
查看>>
2015年度互联网安全报告发布 移动支付成重灾区
查看>>
数百亿美元半导体设备投资 如何避免被海外大厂瓜分?
查看>>
黑客测试有望提高智能家居安全性?
查看>>
思科推NCS4200家族 与Ciena竞争Verizon城域订单
查看>>
易成新能28亿驰援赛维破产重整 试水另类“债转股”
查看>>
医疗信息安全马虎不得
查看>>
智慧城市需依托社会共建
查看>>
中国首个LTE IoT多模外场测试启动 多模成物联网时代主旋律
查看>>