我是一个初学者,试图用一个数组来计算一个人在CS50课程上花费的总小时数,但是当它提示输入字符T时,程序结束了,它不计算总数。
#include <cs50.h>
#include <stdio.h>
int main (void)
{
int weeks = get_int("Weeks taking CS50: ");
int hours [weeks];
for (int i=0; i < weeks; i++)
{
hours[i] = get_int("WK %i Number of hours: ",i);
}
char output;
do
{
output = get_char("Enter T for total hours, A for average hours per week: ");
} while (output != 'T' && output != 'A');
int total =0;
for (int i=0; i < weeks; i++)
{
total += hours [i];
if (output == 'T')
return total;
}
}
我尝试将if语句放在第一个,但结果总计不正确-结果为21782。我假设问题出在第二个for循环中-我最终也会让它计算平均值,但首先我希望总计能够正常工作
2条答案
按热度按时间nue99wik1#
在这个for循环中
在循环的第一次迭代中,由于该if语句,程序立即退出
如果要输出total的值,则编写如下示例
请注意,您应该在使用变量的最小范围内声明变量。
或者,如果要为选择内容
'A'
追加代码,则代码如下所示qxgroojn2#
你从来不打印总数,你只打印
return total
,而且你在循环的第一次迭代中也这样做,这意味着total
和hours[0]
是一样的。您需要
printf
结果,并将其移动到循环的 * 后面 *: