繁体   English   中英

C语言:当我使用scanf时,输出控制台显示“程序以退出代码结尾:0 [无论我为scanf输入什么]”如何解决此问题?

C language: When I use scanf the output console displays “Program ended with exit code: 0[whatever I input for scanf]” How do I fix this?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

例如:

printf("Please enter the amount of money you want to accumulate: ");
scanf("%f", &cashGoal);
printf("You would like to save up to $%.2f\n", cashGoal);

返回此:

Please enter the amount of money you want to accumulate: Program ended with exit code: 0123123
You would like to save up to $123123.00

编辑:这是完整的代码,这是我的家庭作业项目,所以它有点长

#include <stdio.h>
#include <math.h>

FILE *fp;

#define PENNY 0.01

int daystoCashGoal(float);

int main(void) {
fp = fopen("csis.txt", "w");
float cashGoal;


printf("Please enter the amount of money you want to accumulate: ");
fprintf(fp, "Please enter the amount of money you want to accumulate: ");
scanf("%f", &cashGoal);
printf("\n");
fprintf(fp,"\n");
printf("You would like to accumulate $%.2f.\n\n", cashGoal);
fprintf(fp, "You would like to accumulate $%.2f.\n\n", cashGoal);

daystoCashGoal(cashGoal);

fclose(fp);
return 0;
}

//Calculates the number of days it will take to accumulate the user-desired amount, doubles the deposit for each day, and sums up the balance for each day
int daystoCashGoal(float cashGoal){
int day = 1;
float dailyBalance = 0, dailyDeposit;

printf("DAY          DEPOSIT          BALANCE\n");
fprintf(fp, "DAY          DEPOSIT          BALANCE\n");
printf("___          _______          _______\n");
fprintf(fp, "___          _______          _______\n");

 while (dailyBalance <= cashGoal) {
    dailyDeposit = (pow( 2, day - 1)) * PENNY;
    dailyBalance += dailyDeposit;

    printf("%3d %5s %10.2f %5s %10.2f\n", day,"", dailyDeposit,"", dailyBalance);
    fprintf(fp, "%3d %5s %10.2f %5s %10.2f\n", day,"", dailyDeposit,"", dailyBalance);

     if (dailyBalance <= cashGoal) {
                 day ++;
     }
     else if (dailyBalance >= cashGoal) {
         continue;
     }

}

if (dailyBalance >= cashGoal) {
    printf("\nIt took %d days to accumulate at least $%.2f.\n", day, cashGoal);
    fprintf(fp, "\nIt took %d days to accumulate at least $%.2f.\n", day, cashGoal);
}

return day;
}

由于此项目已经过分级,因此我没有在寻求其他代码方面的建议,但是退出代码问题正在影响我的其他项目,并且我不确定自己做错了什么。 谢谢

问题暂未有回复.您可以查看右边的相关问题.
1 使用scanf()停止控制台输入

我是Java程序员,但是目前正在C平台上解决一些在线问题。 当从控制台读取任何输入时,我想停止读取输入。 就像这样 输入1 2 3 4 输出1 2 3 4 但事前,我不知道我会读多少书。 你们中许多人可能都知道在线法官会从文件中获取输入。 那么, ...

2014-09-06 12:42:20 1 423   c/ io/ scanf
3 当我两次运行代码(在While / DoWhile之后)时,scanf无法正常工作。 (即使用Visual C ++ Windows控制台应用程序)

我是编程的新手,我试图制造一个计算器,并添加了while循环,因此,如果要重复,只需键入“ 1”,程序就会重复。 问题是如果我重复它, scanf()会中断,并且不再允许我在命令行中键入内容。 (我正在使用Visual C ++ Windows控制台应用程序) 我正在尝试使用fflus ...

4 使用scanf-function执行C程序时为空的控制台窗口

我真的是c语言的新手。 我有以下问题。 如果我使用scanf()函数,该程序似乎无法正确执行。 我正在使用Eclipse,并且控制台窗口为空。 但是-当我结束C程序时,所有内容都会显示在控制台窗口中。 这是什么原因呢? ...

2013-09-07 10:07:36 1 180   c/ scanf
5 使用scanf和模拟EOF时控制台应用程序的未定义行为

这类问题似乎是那些令人讨厌的考虑因素之一,但是我想请您详细说明发生了什么,以满足我的好奇心。 假设我们有以下代码块: 编译后,可以使用CTRL + Z快捷键在模拟的EOF行的开头键入内容,然后按ENTER键-完成两次。 输出看起来像这样: ^ Z ^ Z -52 ...

6 如何解决freopen和scanf(C ++)的问题?

我为USACO银牌问题编写了一些代码“ Rest Stops”(2018年2月)。 但是,当我提交我的代码时,freopen和scanf存在一些问题。 我尝试将更改为并添加了return 0,但是它们都不起作用。 我包括了stdio.h,算法和向量库。 using namespace ...

2019-10-10 01:54:18 0 32   c++
8 C:scanf和程序退出

我正在尝试通过一些实践练习来学习C编程。 例如,这应该读取用户输入的2系列数字(每月的几天)。 我遇到的问题是,在第一个系列运行正常之后,程序会跳过其他scanf命令并终止。 为什么? 谢谢 ...

2015-07-09 07:04:36 1 1484   c/ scanf
9 C语言中的Scanf是否导致奇怪的控制台行为?

我知道scanf不好,而且是全部,但是我们不会对此进行无效输入的测试(假定始终有效)。 但是,当我调用具有scanf调用的promptPlayer() ,向控制台的输出停止(这没有意义,因为所有输出都应该在控制台中进行,而对scanf的调用甚至都在进行 。输入应为set由空格分隔的坐标(如输出 ...

10 使用Scanf的矢量输入(C语言)

stackoverflow的第一次用户,但长时间访问者。 我认为开始更多参与是明智的。 但首先,我有一个小问题:) 基本上我要做的是接收3个数字(可以是正数,负数或十进制数),每个数字用空格(XYZ)分隔,仅使用scanf并放入数组/结构(忽略空格),然后返回如果用户未明确输入数字或以 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM