实验2 格式化输入输出和分支语句

Part1

/* 
《C语言程序设计教程学习指导》p118 实验内容(1) 
这是一个常用格式控制符使用示例
运行程序,观察行结果,对照每一行printf()中的格式控制符,理解其功能和用法
*/ 
#include 
int main() {
    int x=1234;
    float f=123.456;
    double m=123.456;
    char ch='a';
    char a[]="Hello, world!"; // 定义一个数组a,数组中连续存放了字符串常量hello,world!
    int y=3, z=4; 
    printf("%d %d\n", y, z);
    printf("y=%d, z=%d\n", y,z);
    printf("%8d,%2d\n", x,x);
    printf("%f, %8f, %8.1f, %0.2f, %.2e\n",f,f,f,f,f);
    printf("%lf\n",m);
    printf("%3c\n", ch);
    printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);
    return 0;
}

实验2 格式化输入输出和分支语句_第1张图片

 

 运行结果中

第一二行:一致。

第三行:    1234不一致,因为%8d表示整型数据,最大有效长度为8位,且右对齐。所以与初始值不一致。而1234一致,因为%2d表示整形数据,最大有效长度为2位,若不足2位,则在前面补空格,而超出两位则按实际位数输出,而1234为四位,按原位数输出。

第四行:1、因为计算机在十进制与二进制转换之间发生错误,因此在输出时,输出123.456的近似数,因此不一致。

              2、%8f为宽度占八位,整数123为一位,小数点为一位其余的占剩余位数,001的原因同1、,因此不一致。

              3、%8.1意思为.1代表小数点后保持一位,四舍五入取5,同时宽度又为8,右对齐,留出空格,因此不一致。

              4、%0.2表示小数点后保留两位,四舍五入,因此不一致。

              5、%.2e表示以指数形式输出,且四舍五入保留2位,因此不一致。

第五行:%If表示双精度浮点型,以double型输出,所占位数不一致,因此不一致。

第六行:%3从,表示数据宽度为3,且右对齐,因此左边留出三个空位,因此不一致。

第七行:表示输出字符串,因此一致

第八行:%15s表示字符串宽度为15,且右对齐,所以左边留有空格位,因此不一致。

第九行:%10.5s表示字符串宽度为10,且右对齐,字符数为5因此左边留有空格,因此不一致。

第十行:%2.5s表示宽度为2,输出字符数为5,因此不一致。

第十一行:%.3表示字符串宽度为3,因此不一致。

 

原来代

 

 

/* 
C语言程序设计教程学习指导》p119 实验内容(2)  
这是一个格式化输入输出函数及格式符使用练习
找出两处错误,修改并运行程序 
为a1,a2,a3,c1,c2,c3,x,y输入数据,使得:
a1=1,a2=2,a3=3,c1='a',c2='b',c3='c', x=1.5, y=2.5 
*/ 
#include 
int main() {
    double x,y;
    char c1,c2,c3;
    int a1,a2,a3;
    scanf("%d%d%d",a1,a2,a3);/*a1,a2,a3前均需加上&*/
    printf("%d,%d,%d\n",a1,a2,a3);
    scanf("%c%c%c",&c1,&c2,&c3);
    printf("%c%c%c\n",c1,c2,c3);
    scanf("%f,%lf",&x,&y);/*%f应该改为%lf*/
    printf("%f,%lf\n",x,y);/*%f应该改为%lf*/
    return 0;
} 

实验2 格式化输入输出和分支语句_第2张图片

 

 错误1:a1,a2,a3前不加&则缺少地址码

错误2:x,y为double类型,因用%lf而不是%f。

Part2

 

/*
《C语言程序设计教程学习指导》p122 实验内容(1):判断三角形类型:一般三角形、等腰三角形、等边三角形 
 这是一个使用多分支if语句编程解决非数值类问题示例 
 运行程序,输入不同边长数据进行测试,观察输出结果是否正确,理解和巩固if语句功能和用法
*/ 
 #include 
 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)   
             printf("构成等边三角形\n");
         else if(a==b || a==c || b==c)   
             printf("构成等腰三角形\n");    
         else
             printf("构成一般三角形\n");
     }
     else
         printf("不能构成三角形\n");
         
     return 0;
} 

 

实验2 格式化输入输出和分支语句_第3张图片

 

 

实验2 格式化输入输出和分支语句_第4张图片

 

 实验2 格式化输入输出和分支语句_第5张图片

 

 实验2 格式化输入输出和分支语句_第6张图片

 

 改后

/*
《C语言程序设计教程学习指导》p122 实验内容(1):判断三角形类型:一般三角形、等腰三角形、等边三角形 
 这是一个使用多分支if语句编程解决非数值类问题示例 
 运行程序,输入不同边长数据进行测试,观察输出结果是否正确,理解和巩固if语句功能和用法
*/ 
 #include 
 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;
} 

实验2 格式化输入输出和分支语句_第7张图片

 

 实验2 格式化输入输出和分支语句_第8张图片

 

 实验2 格式化输入输出和分支语句_第9张图片

 

 实验2 格式化输入输出和分支语句_第10张图片

 

 

// 功能: 从键盘上输入数字选择屏幕配色方案,打印字符串 

// 输入1, 选择黑底绿色配色方案 
// 输入2,选择白底黑色配色方案 
// 输入3,选择蓝底黑色配色方案 
// 输入其它,选择黑底白字配色方案(默认) 

#include 
#include 
int main() {
    char choice;
    
    // 显示菜单 
    printf("输入0~9以内的数字,选择屏幕背景色前景色方案: \n");
    printf("1-\t黑底绿色\n");
    printf("2-\t白底黑色\n");
    printf("3-\t蓝底白色\n");
    printf("其它-\t黑底白色(默认)\n");
    printf("\n请输入, 选择你想使用的屏幕配色方案:    ");
    
    // 要求用户从键盘输入0~9的数字,选择屏幕配色方案 
    choice = getchar();
    
    // 根据用户输入,设置屏幕配色方案 
    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;
} 

实验2 格式化输入输出和分支语句_第11张图片

 

 实验2 格式化输入输出和分支语句_第12张图片

 

 实验2 格式化输入输出和分支语句_第13张图片

 

 实验2 格式化输入输出和分支语句_第14张图片

 

 修改

// 功能: 从键盘上输入数字选择屏幕配色方案,打印字符串 

// 输入1, 选择黑底绿色配色方案 
// 输入2,选择白底黑色配色方案 
// 输入3,选择蓝底黑色配色方案 
// 输入其它,选择黑底白字配色方案(默认) 

#include 
#include 
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 
int main()
{   int x,y,z;
    scanf("%d",&x);    
    y=(x/10)%10+x%10*10;
    z=(x/100)%10+((x/10)%10)*10+(x%10)*100;
    if(x>=0&&x<10)
    printf("%d正序和逆序相同",x);
    else if(x==y||x==z)
    printf("%d正序和逆序相同",x);
    else
    printf("%d正序和逆序相同",x);
    return 0;
}

 

实验2 格式化输入输出和分支语句_第15张图片

 

 实验2 格式化输入输出和分支语句_第16张图片

 

 实验2 格式化输入输出和分支语句_第17张图片

 

 实验2 格式化输入输出和分支语句_第18张图片

 

 实验2 格式化输入输出和分支语句_第19张图片

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

 

 

实验2 格式化输入输出和分支语句_第20张图片

 

 

 实验2 格式化输入输出和分支语句_第21张图片

 

 实验2 格式化输入输出和分支语句_第22张图片

 

 三

 

#include 
#include 
int main()
{
    int score;
    printf("请输入学生的成绩:"); 
    scanf("%d",&score);
    if(score<0||score>100)
    {
        printf("分数不在有效区域内\n") ;
        exit(0);
    }
    switch(score/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;
}

 

实验2 格式化输入输出和分支语句_第23张图片

 

 实验2 格式化输入输出和分支语句_第24张图片

 

 实验2 格式化输入输出和分支语句_第25张图片

 

 实验2 格式化输入输出和分支语句_第26张图片

 

 实验2 格式化输入输出和分支语句_第27张图片

 

 实验2 格式化输入输出和分支语句_第28张图片

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(实验2 格式化输入输出和分支语句)