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)個月。再添加日數)

心得:多多翻書,看看學習視頻

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM