C语言中的货币面额
有人能帮我写代码吗C语言中的货币面额,c,do-while,C,Do While,有人能帮我写代码吗 int main(void){ int money, x[6],i[6]; x[0] = 1000; x[1] = 500; x[2] = 200; x[3] = 100; x[4] = 50; x[5] = 20; printf("Enter your Money: "); scanf("%d", &money); printf("\nBreakdown:\n"); for(int y=0;money != 0; y++){ i[y] = ( m
int main(void){
int money, x[6],i[6];
x[0] = 1000; x[1] = 500; x[2] = 200; x[3] = 100; x[4] = 50; x[5] = 20;
printf("Enter your Money: ");
scanf("%d", &money);
printf("\nBreakdown:\n");
for(int y=0;money != 0; y++){
i[y] = ( money - (money % x[y]) )/x[y];
money = (money % x[y]);
printf("%10d x %d = %5d \n", x[y], i[y], (x[y] * i[y]));
}
printf("---------------------------\n");
printf("Total:");
printf(" %d", money);
getch()
}
如何检查是否有余数&它会说输入无效这里有一个版本可以处理所有输入,而不仅仅是那些可以被20整除的输入
int main(void){
int money, money2, x[7],i[7], y;
x[0] = 1000; x[1] = 500; x[2] = 200; x[3] = 100; x[4] = 50; x[5] = 20, x[6] = 1;
printf("Enter your Money: ");
scanf("%d", &money);
money2 = money;
printf("\nBreakdown:\n");
for(y=0;money >0; y++){
i[y] = ( money - (money % x[y]) )/x[y];
money = (money % x[y]);
printf("%10d x %d = %5d \n", x[y], i[y], (x[y] * i[y]));
}
printf("---------------------------\n");
printf("Total:");
printf(" %d", money2);
getch();
}
所做的更改是
x[6]=1
。这样可以确保最终案例得到处理money2
,用于存储最后打印的总金额。在您的代码中,money
变量被更改,在到达打印功能时其值为零您可以向数组添加更多值,如x[6]=5,x[7]=2,x[8]=1,我认为这是最好的主意。
因此,您还可以计算5、2和1的倍数。
否则 你可以这样做
int nTemp = money; //Take a temp variable to store total money
for(int y=0;money != 0 && y<6; y++){ // check both money!=0 and y should be less than 6
i[y] = ( money - (money % x[y]) )/x[y];
money = (money % x[y]);
printf("%10d x %d = %5d \n", x[y], i[y], (x[y] * i[y]));
}
if(money>0) // if remainder is there you can print
printf("Remaining change = %d\n", money);
printf("---------------------------\n");
printf("Total:");
printf(" %d", nTemp); // print nTemp here, i.e total money
int-nTemp=money//取一个临时变量来存储总金额
对于(int y=0;money!=0&&y0)//如果有余数,则可以打印
printf(“剩余更改=%d\n”,货币);
printf(“------------------------------------\n”);
printf(“总计:”);
printf(“%d”,nTemp);//在此处打印nTemp,即总金额
如果您需要帮助,则需要描述您的代码存在的问题。具体来说,输入、预期行为/输出和实际行为/输出是什么?请不要以图片形式发布文本,因为这会阻止人们复制文本用于回答/评论。这不是问题。请仔细阅读。但是,如果您想知道程序退出时出现分段错误的原因,请考虑如果money
不是20或50的倍数,那么y
的值会发生什么变化。(也许将money!=0
更改为y<6
是个好主意。)在for循环中,您可以检查money!=0&&Y如果它不能被20整除,如何使它无效