实验二

part1:格式化输入函数和格式化输出函数

1.

实验二_第1张图片

 

line16:%8d控制输出宽度,不足的以空格补齐。 %2d小于原数据宽度故不变

line17: %8.1f表示宽度为8,小数保留一位;%0.2f表示小数保留两位;%.2e表示以指数形式表示小数,小数部分保留两位.  001是因为十进制转二进制精度问题

line18:double型更精确,没有001

line19:%3c表示宽度为3

line20:同样有输出宽度和精度决定

 

 

2.

line13scanf()函数缺少&;line15双精度数输入要用%lf。

 

#include 
int main() {
    double x,y;
    char c1,c2,c3;
    int a1,a2,a3;
    scanf("%d%d%d",&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("%f,%lf\n",x,y);
    return 0;
} 

 

实验二_第2张图片

 

总结:不同类型的数据输入对应不同的格式符,双精度数据的收入要用%lf,长整型数据的输入要用%ld。

 

 

Part2:验证性内容

1.三角形判断

   可以替换

 #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("构成等边三角形");
            else
              printf("构成等腰三角形"); 
        else
        printf("构成一般三角形");  
      }
     else
         printf("不能构成三角形\n");
         
     return 0;
} 

2.

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

// 输入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;
} 

实验二_第3张图片实验二_第4张图片实验二_第5张图片

 

 

 

Part3:编程练习

1.逆序数

#include
int main()
{
    printf("请输入一个三位数以内的整数:");
    int a,b,c;
    scanf("%d",&a);
    printf("计算其逆序数...\n");
    if(a>=0&&a<=9)
      printf("%d正序和逆序相同",a);
    else if(a>=10&&a<=99)
      {
          b=a%10;
          c=a/10;
           if(b==c)
             printf("%d正序和逆序相同",a);
           else 
             printf("%d正序和逆序不同",a);
           
      } 
    else if(a>=100&&a<1000)
      {
          b=a%10;
          c=a/100; 
           if(b==c)
             printf("%d正序和逆序相同",a);
           else 
             printf("%d正序和逆序不同",a); 
      }
    else
      printf("输入数据错误");
      
      return 0; 
 } 
 

 

 

 

 

 

2.月份天数的判断

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

实验二_第6张图片实验二_第7张图片实验二_第8张图片

 

 

 

3.等级的判断

#include
int main()
{
    printf("输入分数(0-100):");
    int a;
    scanf("%d",&a);
    if(a<0||a>100)
      printf("分数不在有效区间");
    else
    {
      switch(a/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; 
      }
    }
    
}

 

 

 

总结与体会

1.scanf()函数的地址符不能遗漏,格式符的类型要匹配。sacnf()函数与printf()都有分号和双引号。

2.if else中不止一行的要加大括号,注意括号的匹配。

3.注意全角与半角的切换,中文打完要及时切换,不然一些标点是无效的。

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