【发布时间】:2014-12-02 21:19:48
【问题描述】:
我正在阅读C Programming: A Modern Approach(KN King)这本书,我正在阅读第 2 章。我几乎完成了所有练习和程序,但程序 #7 有问题.
基本上,它要求您编写一个程序来计算特定金额所需的最低美元钞票金额。我已经编写了程序,它适用于 20、10、5 和 1 的钞票。但是如果我复制部分代码以将其用于 50 美元的钞票,则该文件将无法编译。
这是我的代码:
int x, num, rest ;
printf("Insert amount to pay: ");
scanf("%d", &x);
printf("You will use the least amount of bills if you pay like so: \n");
num = x / 50;
rest = x - num * 50;
printf("$%d bills: %d\n", 50, num);
/*
num = rest / 20;
rest = rest - num * 20;
printf("$%d bills: %d\n", 20, num);
*/
num = rest / 10;
rest = rest - num * 10;
printf("$%d bills: %d\n", 10, num);
num = rest / 5;
rest = rest - num * 5;
printf("$%d bills: %d\n", 5, num);
num = rest;
printf("$%d bills: %d\n", 1, num);
return 0;
该程序运行良好,直到我尝试使用我注释掉的部分(它是其他块的副本,但例如数字 20 而不是 10)。
编译器不会给出警告或错误,只是不会编译。我该如何解决这个问题?
【问题讨论】:
-
没有警告或错误是什么意思?当你尝试编译时会发生什么?
-
Code:block 中的构建日志显示: 但是通常显示的终端窗口没有出现。 -------------- Build: Debug in p_5 (compiler: GNU GCC Compiler)--------------- mingw32-g++.exe -o bin\ Debug\p_5.exe obj\Debug\main.o 进程以状态 0(0 分钟,0 秒)终止 0 错误,0 警告(0 分钟,0 秒) (s))
-
这并不意味着它没有编译。这意味着它编译并运行完成,没有错误。
-
但是如果我尝试使用注释部分,它的行为会有所不同,因为它什么也没显示。如果我在 50 美元钞票之后评论或删除任何部分,它会起作用,我可以输入和编号,然后打印出结果。如果我也使用注释部分,它什么也不显示...
-
我编译了它(复制到
main()),它运行良好。我恢复了 20 美元的部分,效果更好。
标签: c codeblocks antivirus