码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-11-05 23:22:45      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:优秀   turn   影视   代码   字符串   ret   mamicode   font   配色方案   

Part1:

ex2_1.cpp:

程序运行后,各个变量的值与代码中赋给变量的初始值有一个不一致,printf("%f,%8f)的结果为123.456001
解释:f系统默认小数部分输出6位小数,计算机读取数据时转化为二进制,再转化为十进制输出,过程会出现数据的偏差。
 
ex2_2.cpp:
#include <stdio.h>
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("%lf,%lf",&x,&y);
    printf("%lf,%lf\n",x,y);/*x为double类型,应该为lf*/ 
    return 0;
} 

总结:%d十进制有符号整数,%f小数形式,%c字符形式输出单个字符,%s字符串

%md等是按m宽度输出数据,%m.n等是指数据总宽占m,小数n,数据自身宽度小于m列时左补空格

长双精度实型数据的输出必须加L

Part2:

ex2_3.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;
} 

技术图片

技术图片

技术图片

思考:替换代码后依旧成立

ex2_4.cpp:

#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:

练习1:

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

技术图片技术图片

技术图片

练习2:

#include<stdio.h>
#include<stdlib.h>
int main(){
    int year,month,day,leapyear;
    printf("输入年份 月份:\n");
    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)
    day=31;
    else if(month==2)
    day=28+leapyear;
    else
    day=30;
    printf("%d年%d月的天数为:%d\n",year,month,day);
    return 0;
}

技术图片技术图片技术图片技术图片

练习3:

 

#include<stdio.h>
#include<stdlib.h>
int main(){
    int score;
    printf("输入分数(0~100):\n");
    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;
} 

技术图片技术图片技术图片

总结与体会:

if 和swich语句在一起套用的时候会输着输着思路混乱

{}出现多次的时候会分不清,特别是不小心删去一个}的时候

英文拼错后系统报错,以为是程序错误找半天

part3中的实验二if里面把月份都输了,不知道有没有简便的方法

 

 

 

 

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

标签:优秀   turn   影视   代码   字符串   ret   mamicode   font   配色方案   

原文地址:https://www.cnblogs.com/syl123/p/11773942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!