实验二

实验结论

  

part1:格式化输出函数printf()和格式化输入函数scanf()

(1)几种常用的格式字符:

%d:按十进制整数输出           %f:按浮点数输出

%s:按字符串输出                 %c:按字符输出

%e(或%E):按指数形式输出

m: 输出数据域宽,数据长度<m,左补空格;否则按实际输出

.n:对实数,指定小数点后位数(四舍五入),对字符串,指定实际输出位数

l: 在d、o、x、u前,指定输出精度为long型;在e、f、g前,指定输出精度为double型

格式说明形式:%[<修饰符>]<格式字符>

实例:

%5d: 按宽度5输出一个整型数据,不足前补空格,超过按原样输出,按宽度5

%.3f:单精度浮点型,保留3位小数

%lf: 按双精度浮点型输出

%6.2f:按数据域宽6输出单精度浮点型数据,保留2位小数

%4.2s:按数据域宽4,输出位数2输出字符串型数据

特别地,当以double双精度浮点型输入数据时,必须使用%lf

part4

#include <stdio.h>
int main() {
    int level;
    printf("输入现在的状态等级(1-5):  ");
    scanf("%d",&level);
    switch(level) {
        case 1: printf("high翻了:)\n"); break;
        case 2: printf("low爆了:(\n"); break;
        default: printf("一言难尽,无法概括。。。\n");
    }
    return 0;
} 

  

去掉break;

两者区别:

当有break时,遇到break语句,程序就跳出这一case,switch语句结构,转到其结构后面的语句执行;当没有break语句时,程序就会一直往下执行,直到遇到break语句或该switch结构结束。在该程序中即为输入1,会执行case的所有语句,直到switch结构结束。

part5

#include <stdio.h>
int main(){
    int answer;
    printf("请输入你的答案(A,B,C or D):"); 
    scanf("%c",&answer);
    if(answer!='A'&&answer!='B'&&answer!='C'&&answer!='D'){
        printf("invalid answer,try again~\n");
    }
    else
    switch(answer){
        case 'A':printf("Binggo, you are right~\n");break;
        default :printf("try again~\n");break;
    }
    return 0;
}

  

实验总结与体会:

对代码还是不够敏感,不能快速找出其中的错误,记忆不准确

if语句刚刚学习,用起来有一点生疏,要多加练习

posted @ 2019-04-01 21:10  Cssd  阅读(92)  评论(2编辑  收藏  举报