A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wxh794708907 中级黑马   /  2015-7-16 21:12  /  559 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

程序结构:
1、顺序结构:就是一直按照顺序执行下来;

2、分支结构:<1>if(表达式/常量/变量){语句块}
                原理:1.先计算小括号中的表达式的值 如果是真就会执行后面大括号中的语句块 ,如果为假就不会执行后面的大括号的语句块;
                     
              <2> if(表达式1){}   else{if(表达式2){}}  不管表达式为真还是为假都会执行一个语句;
                 第一个例子游戏是不是5;
                  int num=0;
                  printf("请输入一个数:\n",num)   ;
                  scanf("%d",&num);
                  if(num == 5){
                  printf("恭喜你!\n");
                  }
                  else{
                     if(num>5){

                     printf("大于5了!\n");
                               }
                     else{
                     printf("小于5了!\n");
                          }
                  }

              第二个例子 判断一个学生成绩的等级;
    #include<stdio.h>   
    int main(){
       int score=0;
       printf(“请输入一个成绩!\n”);
       scanf(“%d”,&score);
       if(score<0 && score>100){
       printf(“成绩不合法\n”);
       }else if(score>=0 || score<=59){
        printf(“E\n”);
       }else if(score>=69){
        printf(“D\n”);
       }else if(score>=79){
        printf(“C\n”);
       }else if(score>=89){
        printf(“B\n”);
       } else{
         printf(“A\n”);
       }
   return = 0 ;
  }  
if语句的注意事项 如果写成if();后面没有大括号 那么它是一个空语句 但没错;如果if之后的代码块,如果只有一句话则可以省略大括号 例如
                  int a=3 ;
                  if(a>2);
                  printf("a>2\n");它同样可以运行 省略了大括号;
               
                 永真式和永假式:if(1){}大括号里的内容永远执行 if(0){}大括号里的内容永远不执行
               
                  

和电脑猜拳游戏的实现:
       第一步定义变量、
   int computer=-1,player=-1;
第二步,让电脑随机输入一个数存到computer变量里面
   computer=arc4random_unicom (3)  这个函数必须引入头文件#include <stdily.h> 这个函数后面括号中的3表示 会随机出来 0 1 2 三个数;
第三步 ,提示用户输入一个数,
   printf(“请出拳 0:石头 1:剪刀 2:布\n”)
第四步用户输入一个数让变量player接收用户输入的数
  scanf("%d",&player)
第五步校验电脑和用户输入值
if(player<0 || player>2){
  printf("你输入的数不合法\n")
  return = 0;
}
if((player==2 && computer=0) || (player==1 && computer=2) || (player==0 && computer=1)){
    printf(”恭喜你,你赢了\n“)
}else if((computer==2 && player=0) || (computer==1 && player=2) || (computer==0 && player=1)){
    printf("很抱歉,你输了\n");
}else{
        printf("平局\n");  
       }
switch语句 格式是 switch(){ case1:语句;case1:语句;case1:语句;default:语句;}
  注意事项 1 switch语句的表达式类型: 可以放一个整型的变量;int num=10;switch (num)
                                      可以放一个整型常量;switch(10)
                                      可以放一个返回值是整型的表达式;switch (5+5),num = 5+5
                                      可以放可以转换为int类型的表达式;switch ('a'+'a')(因为是’a‘其实就是97是一个整型);

          2.case语句可以有多行语句,可以加括号{},也可以不加

          3.break语句可以加也可以不加 ;
     
          4.case语句的格式:case 10: 常量表达式 (中间的空格和冒号都不能省略)
         
          5.case取值可以是常量 case 10:
         
          6.case也可以是常量表达式 case 5 + 5:

          7.case的穿透问题,同样适用于default;
         
          8.当default语句放最后时 他后面的break是可以省略的 不是最后就必须加break;

          9.case后面不能放实数

case的穿透问题:指某个case语句执行完成后,并没有结束,而直接向下执行其他的case语句 这种现象称为case穿透;

如何防止case穿透呢?我们需呀偶在每一个case语句结束之后,加上一句话break;它表示结束这个switch语句;


if语句与switch语句的转换例子:学生成绩

第一步 首先定义一个变量score
int score;(这里可以不初始化 因为后面要用户输入的)
第二步提示用户输入一个数
printf("请输入一个数\n")
第三步接收用户输入的值存入变量score中
scanf("%d,&score");(这里还要判断是不是0到100的数)
if(score>100 || score<0);
printf("你考这个成绩,你爸妈知道吗\n");
return = 0;
第四步用户输入的值除以十放入另一个变量中
int s=score/10 ;
switch (s){

    case0:
    case1:
    case2:
    case3:
    case4:
    case5:

       printf("E\n")
       break;
   
    case6:
      printf("D"\n);
      break;
    case7:
      printf("C"\n)
      break;
    case8:
      printf("B"\n)
      break;
    case9:
    case10:
      printf("A"\n);
      break;

   default:
      break;

}


分支比较多且无法穷尽或进行大量列举是最好用if
如果分之数量不是很多,但是if代码量比较大的时候 可以选用switch   

判断季节的程序:

int month;
printf("请输入一个月份:\n");
scanf("%d",&month);
switch (month){
   case 12
   case 1
   case 2
    printf("冬季,我喜欢\n");
    break;
   case 3
   case 4
   case 5
    printf("春季,不错\n");
    break;

   case 6
   case 7
   case 8
    printf("夏季,我讨厌\n");
    break;
  
   case 9
   case 10
   case 11
    printf("秋季,还不错\n");
    break;
   default:
   break;

}

实现计算器加减乘除程序:

第一步定义四个变量
int num1,num2,op,result=-1;
第二步提示用户输入第一个数
printf("请输入第一个数\n");
第三步接收用户输入的数到num1
scanf("%d",&num1);
提示用户输入运算符;
printf("请输入运算符0.+ 1.- 2* 3./\n");
scanf("%d",&op);
printf("请输入第二个数\n");
scanf("%d",&num2);
switch (op){
  case 0
    result = num1 + num2;
     break;

  case 1
     result = num1 - num2;
     break;

  case 2
      result = num1 * num2;

  case 3
     result = num1/(float) num2;// 加上float的目的是转换为小数也可以显示出来
     break;

  default :
  break;

printf("%d 和 %d运算的结果 %.2f",num1,num2,result)
     break;
}

3 个回复

倒序浏览
很详细,lz赞一个
回复 使用道具 举报
楼主辛苦 了~~~~~~
回复 使用道具 举报
笔记够全的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马