作为我在Intro to Dev类中的第一次家庭作业的一部分,我必须用C编写一个货币兑换程序。我已经满足了大多数的分配要求,但是我只能坚持两部分。
1)当我输入30000作为输入值时,我得到了两种汇率的2个新值,但是我应该将差值显示为最终输出。当我这样做时,四舍五入无法解决,并且差异比实际差异大一美分。我知道这个问题已经在课堂上解决了,但是即使我尝试匹配课文中的示例(拆分美元和美分),我最终还是得到了一分钱。
2)当我输入5000作为输入值时,最终的差值显示为“ 16.9”,但小数点后应有两位数字。无论我如何格式化输出,都无法在5000条目和30,000条目上都显示准确的格式。
由于这是我们在入门课程中的第一个任务,因此我们只能使用一些不同的参数/命令。我们不允许对任何东西使用double。指令中特别提到在报告差异时使用fabs()作为绝对值,这是我在这里所做的。我假设至少第一个问题是我对fabs()和floor()的排序,但是作为一个新手,我对在哪里寻找实际问题一无所知。任何建议或协助将不胜感激!
// This program compares a specified quantity of US Dollars to Czech
// Korunas at two different fixed exchange rates.
#include <stdio.h>
#include <math.h>
int kor; // User-entered Korunas
const float EXRATE1 = 42; // Constant Exchange Rate 1
const float EXRATE2 = 37; // Constant Exchange Rate 2
float dolex1; // User-entered Koruna value with Exchange Rate 1 applied
float dolex2; // User-entered Koruna value with Exchange Rate 2 applied
float diff; // Difference between two values
int dollars; // Diff value expressed as absolute, dollar digit
float cents; // Diff value expressed as absolute, cents digits
FILE *diskfile;
//Main function
main(){
// Get information from user
printf("*** Koruna Exchange App ***\n\n");
printf("How many korunas do you have in your savings account?\n");
scanf("%d", &kor);
printf("The exchange information for %d korunas is now being recorded.\n", kor);
// Combine user-entered value with various exchange rates to get new values
dolex1 = kor / EXRATE1;
dolex2 = kor / EXRATE2;
// Find difference between new values, then get absolute value
diff = fabs (dolex2 - dolex1);
//Separate dollars and cents
dollars = floor (diff);
cents = (diff-dollars) * 100;
//Open and create file
diskfile = fopen("c:\\class\\test-ke.txt","w");
//Display results
fprintf(diskfile,"For %d korunas:\n", kor);
fprintf(diskfile,"At the rate of %.0f korunas per U.S. dollar,\n", EXRATE1);
fprintf(diskfile,"you have %.2f U.S. dollars.\n", dolex1);
fprintf(diskfile,"At the rate of %.0f korunas per U.S. dollar,\n", EXRATE2);
fprintf(diskfile,"you have %.2f U.S. dollars.\n\n", dolex2);
fprintf(diskfile,"The difference is %d.%.f U.S. dollars.\n", dollars, cents);
fclose(diskfile);
return 0;
}
答案 0 :(得分:0)
请替换
http.Response response = await http.get('SOME URL',headers: {'Content-Type': 'application/json'});
List<dynamic> responseJson = json.decode(utf8.decode(response.bodyBytes));
使用此编辑:
fprintf(diskfile,"The difference is %d.%.f U.S. dollars.\n", dollars, cents);