首页 文章

输出值错误 - 基本C循环分配[关闭]

提问于
浏览
-3

作业3:Acme Travel Agency

问题陈述

在成功解决了Acme Cryptography Division世界上最棘手的加密问题之后,你已经决定要想要看世界了 . 这就是为什么您要求转让为Acme旅行社工作的原因 .

Acme Travel Agency专门从事航空旅行,由于您的质量保证经验,您被分配分析不同飞行计划的质量 . 飞行计划包括N个转机航班 . 每次航班除了最后一班之外,都有一个停留期,乘客必须等待下一次航班 . 您的任务是计算目的地时间(不考虑时区变化)以及飞行计划的质量 .

如果乘客飞行的总时间至少是停留时间的两倍,则认为飞行计划是有效的 . 否则,飞行计划被认为是低效的 .

要计算目的地时间,请将总行程持续时间(所有航班停留持续时间的总和)添加到出发时间,并以24小时时钟格式计算相应的时间 . 请注意,飞行计划可能会持续一整夜,或者可能持续时间超过一天 . 例如,如果飞行计划在09:30离开并持续2000分钟(这是一个长飞行计划!),目的地时间将是第二天18:50 . 因此,您将报告18:50作为目的地时间 .

输入规格

输入将以行单个整数N(1开始)开始

输出规格

您的计划应输出到达时间和航班质量 . 这应该按以下方式格式化:

这个飞行计划是S,将在HH:MM结束 .

其中S是一个字符串:“高效”或“低效”,具体取决于问题陈述中定义的航班质量 . HH:MM是问题陈述中定义的目的地的24小时时间 .

样本I / O.

输入:

1 7 45 75

输出:

这个飞行计划很有效,将于09:00结束 .

输入:

2 13 30 75 180 85

输出:

这个飞行计划效率低下,将于19:10结束 .

输入:

3 12 27 500 300 600 400 300

输出:

这个飞行计划很有效,将于23:27结束 .

交付

对于您的提交,请向webcourses2提交包含您的源代码的单个文件 . 有关评分指南,请参阅“评分量规”部分 .

此作业将于2013年2月21日晚上11:59在webcourses2上发布 .

作为提示,最简单的方法是通过跟踪一天中的分钟,模1440(一天中的分钟数)来处理时间 . 然后,当打印时间时,小时是一天中的分钟除以60,分钟是以60为单位的分钟 .

得分量规

该计划得分为20分 .

编码风格(9)要点(1)程序包含完整的 Headers 注释(名称,日期,简要概要)(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;
}

任何帮助修复我的程序将不胜感激!

1 回答

  • 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 电话相同) .

    请在编译器中启用警告并修复所有警告 .

相关问题