C语言实验 选择结构

发布于:2024-11-03 ⋅ 阅读:(143) ⋅ 点赞:(0)

时间:2024.11.2

一、实验

实验一、7-1 计算分段函数[2]

#include<stdio.h>
#include<math.h>
int main(){
    float x,r;
    scanf("%f",&x);
    if(x<0)
    {
        r=pow((x+1.0),2)+2*x+1.0/x;
    }

    else r=pow(x,0.5);
    printf("f(%.2f) = %.2f",x,r);
    return 0;
}

TIPS:

注意幂函数的写法,pow(x,2)

实验二、7-2 三天打鱼两天晒网

#include<stdio.h>

int main(){
    int n,y;
    
    scanf("%d",&n);
    y=n%5;
    if((y<=3)&&(y>0))
    {
       printf("Fishing in day %d",n);
    }

    else 
    printf("Drying in day %d",n);
    return 0;
}

 

TIPS:

注意考虑整除的情况,即判断的条件要考虑清楚

实验三、7-3 计算火车运行时间

#include<stdio.h>

int main(){
    int c,d,h,m;
    int h1,h2,sum;
    scanf("%d %d",&c,&d);
    h1=c/100;
    h2=d/100;
    sum=(h2*60+d%100)-(h1*60+c%100);
    h=sum/60;
    m=sum%60;

  
    printf("%02d:%02d",h,m);
    return 0;
}

TIPS:

考前多看几遍,思路不要太复杂,将时间差算出,再进行时分换算

 

实验四、7-4 两个数的简单计算器

#include<stdio.h>

int main(){
    char c;
    int a,b,r;
    scanf("%d %c %d",&a,&c,&b);
   if(c=='+')
   {
       r=a+b;
       printf("%d",r);
   }
    else if(c=='-')
   {
       r=a-b;
       printf("%d",r);
   }
   else if(c=='*')
   {
       r=a*b;
       printf("%d",r);
   }
     else if(c=='/')
   {
       r=a/b;
       printf("%d",r);
   }
     else if(c=='%')
   {
       r=a%b;
      printf("%d",r);
   }
    else printf("ERROR");
    return 0;
}

TIPS:

符号的定义用char
 if(c=='+')   符号的条件判断

 char c;          //符号的定义用char
 if(c=='+')       //符号的条件判断

 

实验五、7-5 判断输入的字符是哪种类型

#include<stdio.h>
int main(){
    char c;
    scanf("%c",&c);
   if((c>='0')&&(c<='9'))
   {
       printf("This is a digit.");
   }
    else if((c>='A')&&(c<='Z'))
   {
       printf("This is a capital letter.");
   }
   else if((c>='a')&&(c<='z'))
   {

       printf("This is a small letter.");
   }
     
    else printf("Other character.");
    return 0;
}

实验六、7-6 新年倒计时

#include<stdio.h>
int main(){
    int y,m,d;
    scanf("%d-%d-%d",&y,&m,&d);
   if((y%4==0&&y%100!=0)||y%400==0){
   if(m==12)
   {
       printf("还有%d天到新年",32-d);
   }
  else if(m==11)
   {
       printf("还有%d天到新年",62-d);
   }
  else if(m==10)
   {
       printf("还有%d天到新年",62-d+31);
   }
     else if(m==9)
   {
       printf("还有%d天到新年",62-d+31+30);
   }
  else if(m==8)
   {
       printf("还有%d天到新年",62-d+31+30+31);
   }
         else if(m==7)
   {
       printf("还有%d天到新年",62-d+31+30+31+31);
   }
         else if(m==6)
   {
       printf("还有%d天到新年",62-d+31+30+31+31+30);
   }
         else if(m==5)
   {
       printf("还有%d天到新年",32+214-d);
   }
         else if(m==4)
   {
       printf("还有%d天到新年",32-d+244);
   }
         else if(m==3)
   {
       printf("还有%d天到新年",32-d+275);
   }
         else if(m==2)
   {
       printf("还有%d天到新年",304-d+32);
   }
         else if(m==1)
   {
       printf("还有%d天到新年",367-d);
   }     
   }
    else  if(m==12)
   {
       printf("还有%d天到新年",32-d);
   }
  else if(m==11)
   {
       printf("还有%d天到新年",62-d);
   }
  else if(m==10)
   {
       printf("还有%d天到新年",62-d+31);
   }
     else if(m==9)
   {
       printf("还有%d天到新年",62-d+31+30);
   }
  else if(m==8)
   {
       printf("还有%d天到新年",62-d+31+30+31);
   }
         else if(m==7)
   {
       printf("还有%d天到新年",62-d+31+30+31+31);
   }
         else if(m==6)
   {
       printf("还有%d天到新年",62-d+31+30+31+31+30);
   }
         else if(y==5)
   {
       printf("还有%d天到新年",32+214-d);
   }
         else if(m==4)
   {
       printf("还有%d天到新年",32-d+244);
   }
         else if(m==3)
   {
       printf("还有%d天到新年",32-d+275);
   }
         else if(m==2)
   {
       printf("还有%d天到新年",304-d+31);
   }
         else if(m==1)
   {
       printf("还有%d天到新年",366-d);
   }  
        
        return 0;
}

TIPS:

代码过于繁琐,需要尝试用循环、数组等方法进行改进。

实验七、7-7 计算运费

#include<stdio.h>
int main(){
    float f,p,w,s,d;
    scanf("%f %f %f",&p,&w,&s);
   if(s<250)
   {
      d=0;
       f=p*w*s*(1.0-d);
   }
    else if((s>=250)&&(s<500))
   {
       d=0.02;
       f=p*w*s*(1.0-d);
   }
    else if((s>=500)&&(s<1000))
   {
       d=0.05;
       f=p*w*s*(1.0-d);
   }
     else if((s>=1000)&&(s<2000))
   {
       d=0.08;
       f=p*w*s*(1.0-d);
   }
   else if((s>=2000)&&(s<3000))
   {
       d=0.1;
       f=p*w*s*(1.0-d);
   }
     else if(s>3000)
   {
       d=0.15;
       f=p*w*s*(1.0-d);
   }
    printf("freight=%.2f",f);
    return 0;
}

实验八、7-8 谁能进图书馆

#include<stdio.h>
int main(){
    int j,p,w1,w2;
    scanf("%d %d %d %d",&j,&p,&w1,&w2);
   if(w1>=w2)
   {
       if((w1>=j)&&(w2>=j)){
      printf("%d-Y %d-Y\n",w1,w2);
      printf("huan ying ru guan");
   }
    else if((w1>=j)&&(w2<j)){
        if(w1>=p){
     printf("%d-Y %d-Y\n",w1,w2);
      printf("qing 1 zhao gu hao 2");
        }
        else{
             printf("%d-Y %d-N\n",w1,w2);
      printf("1: huan ying ru guan");
        }}
      else if((w1<j)&&(w2>j)){
        if(w2>=p){
     printf("%d-Y %d-Y\n",w1,w2);
      printf("qing 2 zhao gu hao 1");
        }
        else{
      printf("%d-N %d-Y\n",w1,w2);
      printf("2: huan ying ru guan");
        }}
   else if((w1<j)&&(w2<j)){
       
      printf("%d-N %d-N\n",w1,w2);
      printf("zhang da zai lai ba");
        }}
       else if(w1<w2)
   {
       if((w1>=j)&&(w2>=j)){
      printf("%d-Y %d-Y\n",w1,w2);
      printf("huan ying ru guan");
   }
      else if((w1<j)&&(w2>j)){
        if(w2>=p){
     printf("%d-Y %d-Y\n",w1,w2);
      printf("qing 2 zhao gu hao 1");
        }
        else{
      printf("%d-N %d-Y\n",w1,w2);
      printf("2: huan ying ru guan");
        }}
   else if((w1<j)&&(w2<j)){
       
      printf("%d-N %d-N\n",w1,w2);
      printf("zhang da zai lai ba");
        }}
    return 0;
}

TIPS:

考虑两者年龄大小不同的情况,分类时避免重复,大类分两类的情况下各分三小类。

 

二、知识点及小技巧

1、幂函数pow

r=pow((x+1.0),2)+2*x+1.0/x;

2.符号的定义用char,if(c=='+')   符号的条件判断

 char c;          //符号的定义用char
 if(c=='+')       //符号的条件判断

 


网站公告

今日签到

点亮在社区的每一天
去签到