C語言第一次實驗報告


一.實驗題目,設計思路,實現方法

1.實驗題目

7-7 計算火車運行時間 15

本題要求根據火車的出發時間和達到時間,編寫程序計算整個旅途所用的時間。

輸入格式:

輸入在一行中給出2個4位正整數,其間以空格分隔,分別表示火車的出發時間和到達時間。每個時間的格式為2位小時數(00-23)和2位分鍾數(00-59),假設出發和到達在同一天內。

輸出格式:

在一行輸出該旅途所用的時間,格式為“hh:mm”,其中hh為2位小時數、mm為2位分鍾數。

 

4-6 輸出華氏-攝氏溫度轉換表 15

輸入2個正整數lowerupperlowerupper100),請輸出一張取值范圍為[lowerupper]、且每次增加2華氏度的華氏-攝氏溫度轉換表。

溫度轉換的計算公式:C=5×(F32)/9,其中:C表示攝氏溫度,F表示華氏溫度。

輸入格式:

在一行中輸入2個整數,分別表示lowerupper的值,中間用空格分開。

輸出格式:

第一行輸出:"fahr celsius"

接着每行輸出一個華氏溫度fahr(整型)與一個攝氏溫度celsius(占據6個字符寬度,靠右對齊,保留1位小數)。

若輸入的范圍不合法,則輸出"Invalid."。

 

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!

 

2.設計思路:

7-7 計算火車運行時間

  因輸入是兩個四位整數,則先把小時和分鍾分離開。小時數用到達的直接減去出發的。若到達時間的分鍾數大於出發的,用到達的分鍾數直接減去出發的;若到達時間的分鍾數小於出發的,需要向小時的借位,即到達的分鍾數加上60再減去出發的分鍾數,此時小時數需減去1。此題還須考慮邊界條件,即分鍾數相等和時鍾數相等的特殊情況。

4-6 輸出華氏-攝氏溫度轉換表

  先判定數據的合法性,若lower>upper或lower>100,則直接輸出Invalid。主要是用循環語句每次增加2華氏度再輸出相應的攝氏度。最后注意輸出的格式正確。

4-2-6 到底是不是太胖了

  讀入N行數,算出標准體重,再用真實體重-標准體重的絕對值與標准體重作比較,從而判斷太胖、太瘦或完美。

 

3.實現方法:

7-7 計算火車運行時間

  用%和/把時鍾數和分鍾數分離。再用if語句判斷。

4-6 輸出華氏-攝氏溫度轉換表

  用if語句和運算符&&判斷數據的合法性,再在if語句中嵌入循環for語句實現每次增加2華氏度。

4-2-6 到底是不是太胖了

  用for循環達到讀入N行數。用絕對值函數fabs()計算真實體重與標准體重的絕對值。

 

 

二.源程序

7-7 計算火車運行時間
    h1=t1/100;h2=t2/100;
    m1=t1%100;m2=t2%100;
    if(m1<m2)
    {
     printf("%02d:%02d",h2-h1,m2-m1);
 }
 if(m1>m2)
 {
  printf("%02d:%02d",h2-h1-1,m2+60-m1);
 }
    if(h1==h2 && m1==m2)
 {
  printf("00:00");
 }
 if(m1==m2 && h1!=h2)
 {
  printf("%02d:00",h2-h1);
 }
 

4-6 輸出華氏-攝氏溫度轉換表
 if(lower<=upper && upper<=100 &&lower<=100)
 { 
 printf("fahr celsius\n");
 for(F=lower;F<=upper;F+=2)
 {
  C=5.0*(F-32)/9.0;
  printf("%d%6.1lf\n",F,C);
  }
    }
    else
    printf("Invalid.");
 

4-2-6 到底是不是太胖了


#include<math.h>

 for(i=1;i<=N;i++)
{
 scanf("%lf%lf",&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 pang le!\n");
 }
 if(fabs(b-c)>=c*0.1 && b<c)
 {
  printf("You are tai shou le!\n");
 }
}
 

 

 

三.遇到的問題及解決方法,心得體會

  這幾題沒有太大難度,主要是一些細節的問題,平時要多留心。

  在4-6 輸出華氏-攝氏溫度轉換表中稍注意輸出格式控制(占據6個字符寬度,靠右對齊,保留1位小數)。

  scanf()函數輸入數據時經常忘記前面的&。調用數學函數諸如fabs,sqrt,pow時要加頭文件#include<math.h>。

  C語言中要表達lower不能像數學的那樣,而要分開--lower<=upper&&upper<=100。

 

 

 

 

 

 

 

 


免責聲明!

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



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