當前位置:首頁 » 編程語言 » c語言編輯找零
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言編輯找零

發布時間: 2022-10-16 07:10:34

c語言找零程序 為什麼張數總是0呢應該都轉化好了呀請高手指點

把scanf("%f%f",&a,&b)改成scanf("%lf%lf",&a,&b)試試!應該就沒有問題了。要知道scanf()函數是很挑剔的,你聲明的a、b是double型,但卻用float型格式輸入,所以就出錯了……

❷ c語言找零錢問題

double iChange=0;
double taget=0.72;
double Money[5] = { 0.5, 0.1, 0.05, 0.02, 0.01};
double ArrChange[100];
for語句將ArrChange置零;
int CountCoin=0;
while(iChange != taget )
{
for(int i = 0 ; i < 5 ; i ++)
{
if(iChange + Money[i] > taget)continue;
else
{
iChange += Money[i];
ArrChange[CountCoin] = Money[i];
CountCoin++;
}
}

}
//基本是這么個思路,如果一點也不思考對你沒好處,原理就是找多了就換小的,盡量選大的錢

❸ C語言編程:寫出最合理的超市貨幣找零方案,不考慮一元以下情況,如貨款22元,支付50元,找零28元

現在好像沒2元張....分別用20,10,5為模,得其餘數
(1)20*1+5+3*1
(2)10*2+5+3*1
(3)5*5+3*1
(4)10*2+8*1
(5)20*1+8*1

❹ c語言 購物找零

#include<stdio.h>

int main()

{

float m,n,p;

scanf("%f%f%f",&m,&n,&p);

if(m>=n*p)

printf("找零:%.2f",m-n*p);

if(m<n*p)

printf("Failed");

return 0;

}

❺ C語言,貪心演算法,貨幣找零問題

貪心演算法找零就是現實中從最大面額開始找的思路。不代表是最優解,只是演算法之一。

由於面額輸入順序不定,我先對輸入的面額進行降序排序。

下面代碼:

#include <stdio.h>

#include <malloc.h>

int main()

{

int i,j,m,n,*ns=NULL,*cn=NULL,sum=0;

printf("請輸入總金額m及零錢種類n:"),scanf("%d",&m),scanf("%d",&n);

printf("請分別輸入%d種零錢的面額: ",n);

if(!(ns=(int *)malloc(sizeof(int)*n))) return 1;

if(!(cn=(int *)malloc(sizeof(int)*n))) return 1;

for(i=0;i<n;i++) scanf("%d",&ns[i]);

//------------考慮輸入面額順序不定,先對面額進行降序排列(如按照降序輸入,該段可刪除)

for(i=0;i<n;i++)

for(j=i+1;j<n;j++)

if(ns[j]>ns[i]) ns[j]^=ns[i],ns[i]^=ns[j],ns[j]^=ns[i];

//-------------------------------------------------------------------

for(i=0;i<n;i++)//貪心演算法,從最大面額開始

if(m>=ns[i])

cn[i]=m/ns[i],m=m%ns[i],sum+=cn[i],printf("%d元%d張 ",ns[i],cn[i]);

printf(" 最少使用零錢%d張 ",sum);

return 0;

}

❻ C語言,找零代碼用浮點數怎麼不行

假設浮點數為a, 一般就用a>0判斷就可以了 如果一定要求嚴謹的話, 你可以這么做: 判斷a-0的絕對值是否大於1e-7, 也就是:if(fabs(a-0)>1e-7) 代碼: #include<conio.h> #include<stdio.h> #include<math.h> void main() { float a; scanf("%f",&a); if(fabs(a-0)>1e-7) printf(">0"); else printf("<=0"); getch(); }

❼ 一道c語言初學者題,找零問題,求解答

#include<stdio.h>

void main(){

int total, cost, res10, res1;

total = 50;

scanf("%d", &cost);

res10 = (total - cost)/10;

res1 = total-cost-res10*10;

printf("找零10元%d張; 1元%d張。",res10, res1);

}


運行示意圖

希望幫到你

❽ C語言找零程序求修改

我只能告訴你double的20.6=20.600...001所以exchange=3.999...,而你的num又是int型的,當i=6時,最後除出來的結果是num[]={0,0,0,0,0,0,3}所以都不會提示你有沒有一角零錢。所以你要解決的問題就是int和double相除時造成的數據不準確,我的辦法很土,就是在計算exchange的時候加上一個很小的數,幫你改成了下面的樣子,你再試試

#include"stdio.h"
main()
{
doublea[]={50,20,10,5,1,0.5,0.1};
intnum[7];
inti,pd;
doubleprice,paid,exchange,rest;
printf("請輸入商品總價:");
scanf("%lf",&price);
printf("請輸入支付金額:");
scanf("%lf",&paid);
exchange=paid-price+1e-6;
rest=exchange;
for(i=0;i<7;i++)
{
num[i]=rest/(a[i]);
rest-=num[i]*(a[i]);
}
if((num[6]>3)&&(num[6]<5))
{
printf("請問您有沒有多餘的0.1元?(1表示有,0表示沒有)");
scanf("%d",&pd);
if(pd==1)
{
exchange+=0.1;
rest=exchange;
for(i=0;i<7;i++)
{
num[i]=rest/a[i];
rest-=num[i]*a[i];
}
}
}
if((num[4]>3)&&(num[4]<5))
{
printf("請問您有沒有多餘的1元?(1表示有,0表示沒有)");
scanf("%d",&pd);
if(pd==1)
{
exchange+=1;
rest=exchange;
for(i=0;i<7;i++)
{
num[i]=rest/a[i];
rest-=num[i]*a[i];
}
}
}

printf("找零=");
for(i=0;i<7;i++)
{
if(num[i]==0)continue;
printf("%.1lf*%d(張)",a[i],num[i]);
}
}

❾ C語言實收金額找零代碼怎麼寫

#include<stdio.h>
voidmain()
{
doubleprice,money=0;
intnum;
printf("請輸入方便麵的價格和購買的數量:");
scanf("%lf%d",&price,&num);
money+=price*num;
printf("請輸入作業本的價格和購買的數量:");
scanf("%lf%d",&price,&num);
money+=price*num;
printf("請輸入圓珠筆的價格和購買的數量:");
scanf("%lf%d",&price,&num);
money+=price*num;
printf("應付金額:%.2lf ",money);
printf("實收金額:");
{
doublemoney1;
scanf("%lf",&money1);

printf("找零:%.2lf ",money1-money);
}
}

❿ 用C語言編寫找零錢問題,謝謝!!

//用遞歸, C++下調試
#include <iostream>

using namespace std;

void compute_coins(int coin_value,int& number,int& amount_left){
if(amount_left >= coin_value)
compute_coins(coin_value, ++number, amount_left -= coin_value);

else{
cout << coin_value << ":" << number << endl;
number = 0;

switch(coin_value){
case 25:
compute_coins(10, number, amount_left);
break;
case 10:
compute_coins(5, number, amount_left);
break;
case 5:
compute_coins(1, number, amount_left);
break;
}
}
}

int main()
{
int n;
cin >> n;
int number = 0;
compute_coins(25, number, n);
}

//下面是C語言的,更直觀,不需要引用
#include <stdio.h>

void compute_coins(int coin_value,int number,int amount_left){
if(amount_left >= coin_value)
compute_coins(coin_value, number+1, amount_left-coin_value);
else{
printf("%d : %d\n", coin_value, number);
switch(coin_value){
case 25:
compute_coins(10, 0, amount_left);
break;
case 10:
compute_coins(5, 0, amount_left);
break;
case 5:
compute_coins(1, 0, amount_left);
break;
}
}
}

int main()
{
int n;
printf("input amount:");
scanf("%d", &n);
compute_coins(25, 0, n);
}