2013-02-21 87 views
-3

作業3:Acme的旅行社獲取錯誤的輸出值 - 基本的C循環分配

問題陳述

事業有成解決所有的Acme的密碼司是世界上最棘手的加密問題後,你已經決定,你想要看到這個世界。這就是爲什麼你要求轉帳爲Acme旅行社工作。

Acme旅行社專門從事航空旅行,由於您的質量保證經驗,您被分配到分析不同飛行計劃的質量。一個飛行計劃由N個連接航班組成。除了最後一班航班外,每次航班之後,都有一個停留期間,乘客必須等待下一班航班。您的任務是計算目的地時間(不考慮時區變化)以及飛行計劃的質量。

如果乘客飛行的總時間至少比中轉時間大兩倍,則認爲飛行計劃是有效的。否則,飛行計劃被認爲是低效的。

要計算目的地時間,請將總行程持續時間(所有航班停留持續時間的總和)與出發時間相加,然後以24小時制格式計算相應的時間。請注意,飛行計劃可能會持續一夜,或可能持續時間超過一天。例如,如果飛行計劃於09:30開始並持續2000分鐘(這是一個長時間的飛行計劃!),則目的地時間將是次日18點50分。因此,您將報告18:50作爲目的地時間。

輸入規格

輸入將與線單個整數開始,N(1

輸出規範

你的程序應該輸出的到達時間和飛行的質量。這應在格式化通過以下方式:

此次飛行計劃是S,並且將在HH得出結論:MM

其中S是一個字符串:要麼「EFFIC客戶「或」效率低下「,這取決於問題描述中定義的航班質量。 HH:MM是問題描述中定義的目的地的24小時時間。

樣品I/O

輸入:

輸出:

此飛行計劃是有效的,並且將在09:00結束。

輸入:

輸出:

此飛行計劃是低效的,並且將在19:10結束。

輸入:

輸出:

此飛行計劃是有效的,並且將在23:27結束。

交付

的提交,請向webcourses2包含源代碼的單個文件。有關評分指南,請參閱標記爲「評分專欄」的部分。

這種分配是由於在webcourses2 11:59 PM,2月21日,2013年

作爲一個提示,它是最容易通過保持一天分鐘軌道來處理時,模1440(數一天中的分鐘數)。然後,在打印時的時間,小時是天除以60的分鐘,和微小是天模60

得分專欄

該程序被刻劃出來的20個點的微小。

編碼風格(9)指出 (1)程序包含一個完整的頭註釋(名稱,日期,小結) (1)程序包括有意義的內部意見 (1)計劃保持合理的利用空白 的( 1)程序使用清晰的描述性變量名稱 (1)程序讀取所有值爲整數 (1)程序包含N(或N的某些函數)循環 (1)程序不會提示用戶輸入 (1)計劃包含if語句,用於比較飛行時間和中途停留時間。 (1)程序正確地使用的printf%的代碼以打印時間(%02D)

正確性的輸出(11)點(部分分數是可能的) (10)五個測試的情況下,(2)每例 點(1)程序打印正確的效率等級(高效,低效) (1)程序打印正確的目標時間,不管格式如何 (1)文本與指定的表格完全相同。

我的代碼:

// Included libraries 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int main() { 

// Integer declaration 
int N, hours, mins, i, flight, layover, finflight, flighttot=0, layovertot=0; 

// N, hours, mins input scan 
scanf("%d", &N); 
scanf("%d %d", &hours, &mins); 

// N loop, flight and layover input 
for(i=0; i<N-1; i++) { 
scanf("%d %d", &flight, &layover); 
flighttot += flight; 
layovertot += layover; 
} 

// Final flight input scan 
scanf("%d", &finflight); 
flighttot += finflight; 

// Equations 
mins += (hours*60)+flighttot+layovertot; 
hours == mins/60; 
hours %= 24; 
mins %= 60; 

// Output 
if(flighttot >= 2*layovertot) 
printf("The flight plan is efficient, and will conclude at %d:%d",&hours, &mins); 

else 
printf("The flight plan is inefficient, and will conclude at %d:%d",&hours, &mins); 

return 0; 
} 

任何固定我的程序幫助將不勝感激!

+0

我們不是你的家庭作業者。 – 2013-02-21 22:38:10

+1

縮短你的問題,告訴我們你的具體問題是什麼,並告訴我們你有什麼特別的困難。就目前而言,這是一個完全垃圾問題。 – Ross 2013-02-21 22:53:50

回答

1
hours == mins/60; 

這是錯誤的(在您的程序中)。

==是平等的運營商,但你正在尋找的賦值運算符=

hours = mins/60; 

然後:

printf("The flight plan is efficient, and will conclude at %d:%d",&hours, &mins) 

這是不對的。無法在這裏使用&運營商的角度,你要的是:

printf("The flight plan is efficient, and will conclude at %d:%d",hours, mins) 

(同爲其他printf調用)。

請在您的編譯器中啓用警告並修復所有警告。