实验2

#include
int main()
{
    int x=1234;
    float f=123.456;
    double m=123.456;
    char ch='a';
    char 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张图片

1,2行输出整形,一致

3行中x分别以宽度为8和2的整形输出,后一个x实际宽度大于2,按照原宽度输出,因此前者不一致后者一致

4行第一项因为十进制与二进制的相互转化,计算机计算产生误差,

     第二项以8为宽度输出,原宽度大于8,

     第三项以宽度8小数点保留一位四舍五入输出,

     第四项保留两位小数四舍五入输出,

     第五项按科学计数法且保留两位小数输出,均不一致

5行按double型输出,不一致

6行以宽度3输出字符a,不一致

7行输出字符串,一致

8行以宽度15输出字符串,不一致

9行以宽度10输出最大字符长度为5的字符串 ,不一致

10行以宽度2输出最大字符长度为5的字符串,原宽度大于2,不一致

11行输出最大字符长度为3的字符串,不一致

 

 

#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);//改为%lf
    printf("%f,%lf\n",x,y);//改为%lf
    return 0;
}

错误1:a1,a2,a3缺少地址码,错误2:double双精度应该用%lf

总结:%5d,%2f,等输出右段对齐的数,在制作表格形式常用,%.2f,%.3f等控制小数精度一致,%c输出字符,%s输出字符串

长整形时用%ld,double时用%lf

 

 Part 2

 ex2_3

#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_第2张图片实验2_第3张图片实验2_第4张图片实验2_第5张图片

#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_第6张图片实验2_第7张图片实验2_第8张图片实验2_第9张图片

ex_2.4

#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请输入,选择你想使用的屏幕配色方案:    ");
    
    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_第10张图片实验2_第11张图片实验2_第12张图片实验2_第13张图片实验2_第14张图片

修改后:

#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请输入,选择你想使用的屏幕配色方案:    ");
    
    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;
 } 

实验2_第15张图片实验2_第16张图片实验2_第17张图片实验2_第18张图片实验2_第19张图片

 

Part 3

 

#include
int main()
{
    int number;
    
    printf("请输入一个三位以内的十进制整数: ");

    scanf("%d",&number);    

    printf("计算其逆序数...\n");
    
    if(number>0 && number<999)
    {    
        if(number>99 && number/100 == number%10)
            printf("%d正序和逆序相同",number);   
            
        else if(number>9 && number<100 && number/10 == number%10 )
            printf("%d正序和逆序相同",number);
            
        else if(number<10)
            printf("%d正序和逆序相同",number);
            
        else
            printf("%d正序和逆序不同",number);
     }  
     
    else
        printf("该整数不是三位以内的十进制整数\n");

    return 0;
}

实验2_第20张图片实验2_第21张图片实验2_第22张图片实验2_第23张图片实验2_第24张图片实验2_第25张图片

 

#include
#include 
int main()
{
    printf("输入年份 月份:\n");
    
    int year,month,leapyear;
    scanf("%d%d",&year,&month);
    
    leapyear=year%4==0 && year%100!=0 || year%400==0;
    
    if(year<0 || month<1 || month>12)
    {
        printf("输入数据错误\n");
        exit(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==4 || month==6 || month==9 || month==11)
        printf("%d年%d月是30天\n",year,month);
    else
        if(leapyear==0)
            printf("%d年%d月是28天\n",year,month);
        else
            printf("%d年%d月是29天\n",year,month);
    return 0;
}

实验2_第26张图片实验2_第27张图片实验2_第28张图片实验2_第29张图片实验2_第30张图片

#include
#include
int main()
{
    printf("输入分数(0~100):");
    
    int grade;
    scanf("%d",&grade);
    
    if(grade<0 || grade>100)
    {
        printf("输入的数据错误\n");
        exit(0);
    }
    
    switch(grade/10)
    {    
        case 10:
        case 9:printf("优秀");break;
        case 8:printf("良好");break;
        case 7:printf("中等");break;
        case 6:printf("及格");break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:printf("不及格");break;
    }    
    
    return 0;
}

实验2_第31张图片实验2_第32张图片实验2_第33张图片实验2_第34张图片实验2_第35张图片实验2_第36张图片

 

 

总结:对if语句与switch用法基本掌握,算法的设计不够流畅,地址符与分号容易忘记输入。

你可能感兴趣的:(实验2)