第二次上机作业

实验结论(如果是来学知识的不要看我的!!!我什么都不知道!!!)

part1

printf()函数是一个标准库函数,它把信息输出到标准输出设备的显示器上。格式parintf("控制字符串“,输出项列表)



控制字符的格式为%[<修饰符>]<格式字符>

格式字符规定了输出项的输出格式

c表示输出单个字符,%c用来输出一个字符。 例如char a=65;printf("%c",a);  结果:A

s表示输出字符串,%s用来输出一个字符串。 例如printf("%s","ABC"); 结果:"ABC"  双引号是必须加的!

f表示以小数形式输出单双精度实数 %f表示以小数的形式输出一个实数,一般情况下保留小数点后6位。

e表示以指数形式输出单双精度实数 ,%e表示以指数形式输出实数。


修饰符是可选的,用于确定数据输出的宽度、精度、小数位数、对齐方式等,如果没有修饰符的话,小数按6位小数输出。

修饰符m表示输出数据域宽度,如果数据长度<m,则左边补空格;如果数据长度>m,则按实际输出  例如int x=13 printf("%5d",x),则会显示出”00013“,如果x=1234567,则会输出”1234567修饰符.n表示对实数,指定小数点后位数(四舍五入);对字符串,指定实际输出位数,用起来就是这样的

修饰符l表示,在d、o、x、u前,指定输出精度为long型,在e、f、g前指定输出精度为double型。

%f和%lf分别是float类型和double类型用于格式化化输入输出是对应的格式符号。float表示单精度浮点型,对应%f。对应4字节,6-7位有效数字。double表示双精度浮点型,88字节,15-16位有效数字。用%f表示float 和double都行,但是精确度不一样。%0.3是小数点后保留3位有效数字。在被定义为double类型的输出时必须用%lf。


part4

switch代码

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

输入1的结果

输入2的结果

输入3的结果

把break后去掉后的代码

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

输入任意值后结果

part5:简单程序小练习

#include<stdio.h>
int main(){
    char ch;
    printf("输入选项A~D:\n");
    scanf("%c",&ch);
    
    if(ch==65)
     printf("right\n");
    else
     printf("try again\n");
    return 0;
}

输入A后的结果

输入D后的结果

我在课上一直想用A来表示,但是总是不成功,我才使用字符的,下课后我仔细回忆才想起来,我的A忘加''了

下面是我修改了以后的程序,结果和上面的一样

#include<stdio.h>
int main(){
    char ch;
    printf("输入选项A~D:\n");
    scanf("%c",&ch);
    
    if(ch=='A')
     printf("right\n");
    else
     printf("try again\n");
    return 0;
}

part 6

问题描述   有5个人坐在一起,问第5个人多少岁,他说比第4个人大两岁。问第4个人多少岁,他说比第3个人大2岁。问第三个人多少岁,他说比第2个人打2岁。问第2个人多少岁,他说比第1个人打2岁问第一个人,他说他10岁。编写程序,当输入第几个人时求出其对应年龄。

#include<stdio.h>
int age(int n)
{
    int x;
    if(n==1)
       x=10;
    else
    x=age(n-1)+2;
    return x;
}
int main()
{
    int n;
    printf("请输入第几个人: \n");
    scanf("%d",&n);
    printf("第%d个人的年龄为%d\n",n,age(n));
    return 0;
}

结果:


实验的总结与体会

我认为这一次我的上机课比上一次准备的充分,一方面是我经过上次的经历后做了很多准备,把书翻熟了,遇到困难后第一时间想到的就是翻书查找,觉得自己收获了许多,另一方面是老师已经把自己的过程发上来了,我实在不会的情况下会对照老师的寻找自己的错因,不会像上次一样无头苍蝇似的乱找,不一会儿就放弃了。

我遇到的问题有很多,其中找printf scanf错误那里我做的特别费劲,老是记不清要不要加&或者%lf还是%f什么的,这次我把他们总结了一遍,希望下次自己会熟练很多。

if语句我用的还行,可大多都是依托着老师的答案,没有答案看着我可能脑子就不会那么清楚了。

switch语句我终于会啦,又是在网上查又是看视频,终于明白了!!

最后我听老师上课说的可以在做c语言的小游戏时通过娱乐收获知识,我也尝试了一下,可以逻辑太深奥,好几百行,程序员太辛苦了,怪不得没有头发呢呜呜呜呜呜,我就找了个简单的做来玩玩。

猜你喜欢

转载自www.cnblogs.com/zhaoyingshan/p/10621191.html