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

ex2_1.cpp

程序运行后,各个变量的值与代码中赋给变量的初始值是否一致:不一致

原因:输出符printf%后的修饰符:m 输出数据域宽,数据长度<m,左补空格;否则按实际输出;

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

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

ex2_2.cpp

指出有错的部分,并分析错误原因。

line 13,line17

错误原因:line13少了地址运算符,line17double类型数据输入应为“%lf”

总结几个常用的格式符%d, %f, %c, %s的常用用法,尤其是诸如%5d, %lf, %.3f, %6.2f的用法。回答什么情况下必须使用格式符%lf, %ld?

%d:按十进制整数输入;%f:按浮点数据输入;%c:按字符输入;%s:按字符串输入

double类型的数据输入一定要用“%lf”

long类型的数据输入一定要用“%ld”

Part2: 验证性内容

在实验博客中回答验证性内容中提出的思考题,并附上自己对ex2_3.cppex2_4.cpp修改后的代码和运行测试

#include <stdio.h>
 int main() {
     double a,b,c;
     scanf("%lf %lf %lf", &a, &b, &c);
     
     if(a<0 || b<0 || c<0)
         printf("不能构成三角形\n");
     else if(a+b>c && a+c>b && b+c>a) {
         if(a==b || a==c || b==c) { 
         if (a==b && a==c)
         printf("构成等边三角形\n");
             else 
         printf("构成等腰三角形\n");
         } 
         else 
             printf("构成一般三角形\n");
     }
     else
         printf("不能构成三角形\n");
     return 0;
}











#include <stdio.h>
#include <stdlib.h>
int main() {
    int choice;
    
    // 显示菜单 
    printf("输入0~9以内的数字,选择屏幕背景色前景色方案: \n");
    printf("1-\t黑底绿色\n");
    printf("2-\t白底黑色\n");
    printf("3-\t蓝底白色\n");
    printf("其它-\t黑底白色(默认)\n");
    printf("\n请输入, 选择你想使用的屏幕配色方案:    ");
    
    // 要求用户从键盘输入0~9的数字,选择屏幕配色方案 
    scanf("%d",&choice);
    
    // 根据用户输入,设置屏幕配色方案 
    if (choice == 1) {
        system("color 02");
        printf("《黑客帝国》一类的影视剧常见这种屏幕色:)\n"); 
    } 
        
    else if(choice == 2) {
        system("color f0");
        printf("大部分编辑器默认是这种配色:)\n");    
    }
        
    else if(choice == 3) {
        system("color 1f");
        printf("这是机器蓝屏故障时的不讨喜色:)\n");
    }
        
    else {
        system("color 0f");
        printf("控制台程序默认小黑窗:)\n");        
    }
        
        
    printf("programming is fun, just try@_@\n");
    
    
    return 0;
} 

 


 

 

 

Part3: 编程练习

附上每道程序源码和运行测试截图。

 

#include<stdio.h>
int main()
{
    int a,b; 
    printf("输入一个三位数以内的十进制整数:\n");
    scanf("%d",&a);
    if (0<=a&&a<10)
    {
    printf("该数正序和逆序相同"); 
    }
    else if(10<=a&&a<=999)
    {
    b=(a%10)*100+((a/10)%10)*10+a/100;
    if (a==b)
    printf("该数正序和逆序相同");
    else
    printf("该数正序和逆序不同"); 
}
    else
    printf("wrong");
    return 0;
 }








 

 

 


 

 

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int year,month,day,leapyear;
    scanf("%d%d",&year,&month);
    if(year<0||month<1||month>12)
    {
        printf("输入的数据错误!\n");
        exit(0);
    }
    leapyear=year%4==0&&year%100!=0||year%400==0;
    if (month==1||month==3||month==5||month==7||month==8||month==10||month==12)
    {
    printf("%d年%d月的天数为:31\n",year,month);    
    }
    else if(month==2)
    {
    day=28+leapyear;
    printf("%d年%d月的天数为:%d\n",year,month,day);
    }
    else
    {
        printf("%d年%d月的天数为:30\n",year,month);
    }
    return 0;

    
    
}




#include<stdio.h>
#include<stdlib.h>
int main()
{
    int cj;
    scanf("%d",&cj);
    if(cj<0||cj>100)
    {
        printf("输入数据错误\n");
        exit(0);
    }
    switch(cj/10)
    {
        case 10:
        case 9:printf("优秀\n");break;
        case 8:printf("良好\n");break;
        case 7:printf("中等\n");break;
        case 6:printf("及格\n");break;
        default:printf("不及格\n");break;
    }
    return 0;
}

 

实验总结与体会

输入时要加地址运算符,注意相应的控制符的用法与作用,以及相应输入输出时的数据类型。

对用法意基本掌握,但是对if else 的花括号的使用仍有一点问题,不太清楚。

if else语言多个使用时没有加花括号;语句结束没有加分号;单词拼写错误。

c语言要多加练习,注意语言的简洁不要走弯路。

 

 

                                                                                                                                                                                      

 

版权声明:本文为r1017原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/r1017/p/11775299.html