实验二

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

第一个程序包含整型,精度,双精度等等常量类型的输入输出。

第二个程序出现了两个明显错误,其一是在第一行输入的整型常量前没有加上“&”,其二是第一个双精度常量的输入格式符应该是“lf”。

修改第二个程序后,我没有按照格式输入,导致出现了如下状况

当仔细对比课件后,才得以运行正确。故输入时一定要按照编程人员预先格式输入。

Part 2:单个字符输出函数putchar()和单个字符的输出函数getchar()

第一个putchar函数中比较令人费解的是十六进制转义输出,之后查阅书籍了解到,41转化为十六进制为65,65在ASCⅡ码中代表“A”.

第二个程序输出了两个“a”,同时表明了putchar也可以用printf函数输出。

Part 3:

比较两个数的大小我运用了if else语句,初次编程运行如下

演示结果不尽如人意,没有换行,为了增加可读性,我进行了如下修改

程序看起来有些笨拙,但是个人觉得程序执行性还不错,但是如果用这样的程序进行多个数比较会很复杂。

修改过后变成单一出口,比之前的代码要精简很多,减少了一个else的不必要运用。

Part 5:做这个小程序时,出现了两个错误,即输入时忘记添加地址符,吧“==”错写成“=”导致程序多次错误。

 

Part 6:

/*四月日历*/
# include<stdio.h>
# include<stdlib.h>
int main()
{
    int date, weekday;
    scanf("%d", &date);
    if(date < 1 || date > 30)
    {
        printf("请输入正确日期");
        exit(0);
    }
    printf("2019年4月日历\n");
    printf("----------------------------\n");
    printf("Sun Mon Tue Wed Thu Fri Sat\n");
    printf("----------------------------\n");
    switch(date%7)
    {
        case 1:printf("%7d\n", date);break;
        case 2:printf("%11d\n", date);break;
        case 3:printf("%15d\n", date);break;
        case 4:printf("%19d\n", date);break;
        case 5:printf("%23d\n", date);break;
        case 6:printf("%27d\n", date);break;
        default:printf("%3d\n",date);
    }
    printf("感谢使用!");
    return 0; 
 } 

 

posted @ 2019-03-26 22:59  yy-Siri  阅读(178)  评论(1编辑  收藏  举报