实验二

part1




#include <stdio.h> 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; }

改变了数值宽度和小数点的位数

#include <stdio.h>
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;
} 

错误1:scanf()中a1,a2,a3前缺少地址符号,错误2:double双精度应该用%lf

%lf代表双精度整数类型(double) %ld代表输出长整型(long)

 part2

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

将14-19行换掉后逻辑依然成立。

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

#include <stdio.h>
#include <stdlib.h>
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;
} 

将line11改成int型后

#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;
} 

 

part 3

 

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int num;
    printf("请输入一个三位数以内的十进制整数:");
    scanf("%d",&num);
    printf("计算其逆序数…\n");
    if(num<0||num>999)
    printf("输入数据错误"); 
    else if(num>=0&&num<10)
    printf("%d正序和逆序相同",num);
    if(num>=10&&num<=99&&num%10==num/10)
    printf("%d正序和逆序相同",num);
    else if(num>=10&&num<=99&&num%10!=num/10)
    printf("%d正序和逆序不同",num); 
    if(num>99&&num<=999&num%10==num/100)
    printf("%d正序和逆序相同",num);
    else if(num>99&&num<=999&num%10!=num/100)
    printf("%d正序和逆序不同",num);
    return 0;
} 

 

 

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

 

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

 

 

实验总结与体会:1花了很多时间(整整一个下午)完成实验,不够熟练,需要思考很久;2编写代码总是犯一些小错误自己还不能发现,例如拼错单词,漏掉分号;3写if语句特别是有嵌套时会把自己绕进去,if与else不能很好对应,不熟悉;4觉得自己编写的程序很啰嗦,应该有更简单的编写方法,但我不会,希望熟练点后自己能编写出更简单的代码。

 

posted on 2019-10-31 17:52  超人婷cut  阅读(157)  评论(3编辑  收藏  举报

导航