当前位置: 首页 > article >正文

C语言实验 选择结构

时间: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=='+')       //符号的条件判断

 


http://www.kler.cn/a/376747.html

相关文章:

  • Centos7.6离线安装软件
  • Linux——Ubuntu环境C编程
  • 鸿蒙网络编程系列42-仓颉版域名解析示例
  • MFC工控项目实例二十八模拟量信号每秒采集100次
  • 计算机毕业设计——ssm基于java智能选课系统的设计与实现演示录像2021
  • RTDE确保整个机械臂(包括关节和连杆)都不会进入预设的不安全空间范围
  • C++之“取地址运算符重载”
  • 从0开始的STM32之旅 7 串口通信(I)
  • idea 配置tomcat 服务
  • SpringBoot抗疫物资管理:系统开发与部署
  • 2024/11/2 安卓创建首页界面
  • 【MATLAB源码-第196期】基于matlab的A*融合DWA算法栅格路径规划仿真,画出路径图、姿态角度以及线角速度。
  • git入门教程2:git发展历史
  • 【ESP32】ESP-IDF开发 | PWM脉宽调制器+PWM波形输出和捕获例程
  • 架构师之路-学渣到学霸历程-37
  • 修复因Ubuntu升级导致无法联网的问题
  • 线程池学习之执行流程、拒绝策略、线程池状态
  • 心觉:别再等完美工具了!用“小米加步枪”也能战斗,边干边升级才是最强策略!
  • 搜索引擎算法更新对网站优化的影响与应对策略
  • Tenda路由器 敏感信息泄露
  • FreeRTOS工程编译缺失头文件freertos_mpool.h或freertos_os2.h
  • Leetcode 热题100 之 二叉树3
  • 结合无监督表示学习与伪标签监督的自蒸馏方法,用于稀有疾病影像表型分类的分散感知失衡校正|文献速递-基于生成模型的数据增强与疾病监测应用
  • 从0开始学PHP面向对象内容之(类,对象,构造/析构函数)
  • npm入门教程9:npm配置
  • Python爬虫:揭开淘宝商品描述的神秘面纱