C语言第一次实验报告

一.实验题目,设计思路,实现方法

题目一      7-7计算火车运行的时间

本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。

输入格式:

输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。

输出格式:

在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数

题目二   4-6 输出华氏-摄氏温度转换表

输入2个正整数lowerupperlowerupper≤100),请输出一张取值范围为[lowerupper]、且每次增加2华氏度的华氏-摄氏温度转换表。

温度转换的计算公式:C=5×(F32)/9,其中:C表示摄氏温度,F表示华氏温度。

输入格式:

在一行中输入2个整数,分别表示lowerupper的值,中间用空格分开。

输出格式:

第一行输出:"fahr celsius"

接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。

若输入的范围不合法,则输出"Invalid."。

输入样例1:

32 35

输出样例1:

fahr celsius
32   0.0
34   1.1

输入样例2:

40 30

输出样例2:

Invalid

题目三  4-2-6是不是太胖了

4-2-6 到底是不是太胖了(10 分)

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。

输入格式:

输入第一行给出一个正整数N 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200;单位:厘米)和真实体重W(50 < W 300;单位:市斤),其间以空格分隔。

输出格式:

为每个人输出一行结论:如果是完美身材,输出You are wan mei!;如果太胖了,输出You are tai pang le!;否则输出You are tai shou le!

输入样例:

3
169 136
150 81
178 155

输出样例:

You are wan mei!
You are tai shou le!
You are tai pang le!

题目四 4-2-7装睡

你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一系列人的呼吸频率与脉搏,请你找出他们中间有可能在装睡的人,即至少一项指标不在正常范围内的人。

输入格式:

输入在第一行给出一个正整数N10)。随后N行,每行给出一个人的名字(仅由英文字母组成的、长度不超过3个字符的串)、其呼吸频率和脉搏(均为不超过100的正整数)。

输出格式:

按照输入顺序检查每个人,如果其至少一项指标不在正常范围内,则输出其名字,每个名字占一行。

输入样例:

4
Amy 15 70
Tom 14 60
Joe 18 50
Zoe 21 71

输出样例:

Tom
Zoe

题目五 4-2-8 计算天数

本题要求编写程序计算某年某月某日是该年中的第几天。

输入格式:

输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。

输出格式:

在一行输出日期是该年中的第几天。

输入样例1:

2009/03/02

输出样例1:

61

输入样例2:

2000/03/02

输出样例2:

62

二.源程序

题目一      7-7计算火车运行的时间

#include <stdio.h>
int main(void) {
    int a, b;
    int c, d;
    int e, f;
    scanf("%d%d", &a, &b);
    e = a / 100 * 60  + a % 100;
    f =b / 100 * 60 + b % 100;
    c = (f - e) / 60;
    d = (f - e) % 60;
printf("%02d:%02d",c,d)    ;
    return 0;
}

题目二 4-6 输出华氏-摄氏温度转换表

#include<stdio.h> 
int main (void)
{
int lower,upper,fahr;
double celsius;
scanf("%d %d",&lower,&upper);
if (lower<=upper&&upper<=100)
   {
    printf("fahr celsius\n");
    for(fahr=lower;fahr<=upper;fahr+=2)
       {              
                celsius=5.0*(fahr-32)/9.0;
        printf("%d%6.1f\n",fahr,celsius);
    }
     }else
    printf("Invalid.\n");
return 0 ;
}

题目三  4-2-6是不是太胖了

#include<stdio.h>
#include<math.h>
int n,a,b,c;
int main(){
    scanf("%d",&n);
    while(n--){
        scanf("%d%d",&a,&b);
        c = (a-100)*1.8;
        
        if(fabs(b-c)<(c*0.1)){
            printf("You are wan mei!\n");
        }
        if((fabs(b-c)>=(c*0.1))&&b<c){
            printf("You are tai shou le!\n");
        }
        if((fabs(b-c)>=(c*0.1))&&b>c){
            printf("You are tai pang le!\n");
        }
    }    
    
    return 0;
}

 题目四 4-2-7装睡

#include <stdio.h>

int main()
{
  int i,a,b,N;
  char name [9];
  scanf("%d",&N);
  for (i=1;i<=N;i++) 
  {
    scanf("%s%d%d",name,&a,&b);
    if (a>20||a<15||b<50||b>70) 
   {
      printf("%s\n",name);
    }
  }
  return 0;
}

 

 

#include <stdio.h>
int main() {
    int y, m, d;
    int p,i;
    scanf("%d/%d/%d", &y, &m, &d);
    p = d;
    for(i = 1; i < m; i++) 
    {
        switch(i) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                p += 31;
            break;
            case 4:
            case 6:
            case 9:
            case 11:
                p += 30;
            break;
            case 2:
                if((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
                    p += 29;
                else
                    p += 28;            
        }
    }
    printf("%d", p);
    return 0;
}

 

 

三.问题,方法,心得

题目一      7-7计算火车运行的时间

问题:1.如果到达分钟数大于出发分钟数相减为负数。

     2.输出格式00:00如何表示。

方法:1.化为同一单位进行运算,如统一化为分钟

      2.采用%02d:%02d的方式输出

心得:1.思考问题要细致,审题要仔细,从多方面思考

      2.善于借助工具查询相关知识(百度)

题目二    4-6 输出华氏-摄氏温度转换表

问题:1.输出格式中“6个字符宽度,靠右对齐”不知如何实现。

方法:1.printf("%d%6.1f\n",fahr,celsius)

心得:多翻阅书本,不懂要问。

 

题目三  4-2-6是不是太胖了

问题:1.理解错误题目,以为要一下子输入全部的值再一起判断

方法:1.采用循环语句,循环输出,一个一个判断。

心得:正确理解题目意思很关键,在卡壳的时候试着换种思路。

题目四 4-2-7装睡

问题:1.名字不知道怎么输出

方法:1.运用字符串char

 

题目五 4-2-8 计算天数

问题:1.因为大小月的差异不知道如何相加。

方法:1.采用switch语句,设置多个分支,外加for循环语句,使程序从一月开始加至(n-1)个月。再添加日数)

心得:多多翻书,看看学习视频

 

posted on 2017-10-21 16:35  开心仔  阅读(3289)  评论(1编辑  收藏  举报

导航