A. 怎麼進行c語言編程,要全代碼
需要一個編譯器如dev c++(推薦),vc等
在編譯器里新建一個cpp文件,寫代碼如下:
#include<stdio.h>
int main()
{
int total=0,id,n,a[3]={245,570,網球拍價格};
char x;
while (1)
{
printf("輸入商品編號:");
scanf("%d",&id);
printf("\n輸入購買數量:");
scanf(%d",&n);
if(id==1) {printf("T恤:245 數量:%d 合計:%d",a[0]*n);total+=a[0]*n;}
if(id==2) {printf("網球鞋:570 數量:%d 合計:%d",a[1]*n);total+=a[1]*n;}
if(id==3) {printf("網球拍:網球拍價格我不知道 數量:%d 合計:%d",a[2]*n);total+=a[2]*n;}
printf("\n繼續?(y/n)");
scanf("%c",&x);
if (x=='n') break;
}
printf("折扣:0.6「);
printf("應付價格:%d",total*0.6);
printf("實付金額:");
int money;
scanf("%d",&money);
printf("找零:%d",money-total);
return 0;
}
p.s 我直接在網頁里打得也沒有編譯,復制去試試應該沒什麼問題,可能也就一些格式啊什麼的,關於金額,可以在a[3]={...,...,...}這里變,反正先看懂應該沒問題
B. c程序編寫一個水果店售貨員算賬的程序
#include<stdio.h>
void main()
{
float n[4],apple=2.5,pear=1.8,banana=2,orange=1.6,price,charge,money;
printf("請輸入水果重量蘋果 鴨梨 香蕉 橘子 (不買的水果請輸入0): \n");
int i;
for(i=0;i<4;i++)scanf("%f",&n[i]);
printf("應付錢 %.2f 元\n",price=apple*n[0]+pear*n[1]+banana*n[2]+orange*n[3]);
printf("請輸入付款數:");scanf("%f",&money);
printf("應找錢 %.2f 元\n",money-price);
}
C. 求C語言代碼改進
我看了下,是「Give_Change=Give_Change-(double)(((int)(Give_Change/100))*100); /找錢給笨蛋,剩下錢數在100塊之內 」這里少了一個/,我改了,不過還有點不足就是有幾分錢時就沒處理到,你看下要不要修改下,這是我個人意見,呵呵,你很厲害哦
#include "stdio.h"
#include "stdlib.h"
void main(void)
{
int i=0,j=0,counter1=0,counter2=0,counter_same=1,Give_Change_Decimal=0;
int M2[3]={10,5,1},Take2[10];
double Buy,Pay,Give_Change;
double M1[7]={100,50,20,10,5,2,1},Take1[15];
/*
i 循環變數
j 循環變數
Buy 所買錢數
Pay 所付錢數
counter1 紙幣張數計數器
counter2 硬幣枚數計數器
counter_same 相同面值錢數計數器
Give_Change 找回錢數
Give_Change_Decimal 找回錢數小數部分
M1[] 紙幣面值數組
M2[] 硬幣面值數組
Take1[] 取紙幣錢數數組
Take2[] 取硬幣錢數數組
*/
printf("\n\n\t\t\t歡迎使用本收銀程序!");
printf("\n\n\t\t請輸入所買錢數(元):");
do
{
scanf("%lf",&Buy);
if(Buy<0 || Buy>1000000)
printf("\n\n\t\t輸入錯誤,請重新輸入:");
fflush(stdin);
}while(Buy<0 || Buy>1000000);
printf("\n\n\t\t請輸入所付錢數(元):");
do
{
scanf("%lf",&Pay);
if(Pay<0 || Pay>1000000)
printf("\n\n\t\t輸入錯誤,請重新輸入:");
fflush(stdin);
}while(Pay<0 || Pay>1000000);
Give_Change=Pay-Buy+0.0009;//浮點數運算的修正
if(Give_Change<0)//錢數不夠的處理
printf("\n\n\t\t錢不夠啊!怎麼搞的?沒錢還買這么多?!");
else if(Give_Change==0)//錢數剛剛好的處理
printf("\n\n\t\t錢數剛剛好,謝謝光顧!");
else
{
printf("\n\n\t\t應該找的錢數為:%.2f\n\n\t\t找錢方案為:",Give_Change);
if(Give_Change>100 || Give_Change==100)
{
printf("\n\n\t\t(--------錢多是吧?--------)");//遇到笨蛋的處理
printf("\n\n\t\t%d元的紙幣%d張",100,(int)(Give_Change/100));
Give_Change=Give_Change-(double)(((int)(Give_Change/100))*100); //找錢給笨蛋,剩下錢數在100塊之內
}
while(i<=5 && Give_Change>=1)//從大到小依次取紙幣,放到Take1[]里
{
while(Give_Change<M1[i] && Give_Change>=M1[i+1])
{
Take1[counter1++]=M1[i+1];
Give_Change=Give_Change-M1[i+1];//找完一張紙幣,相應的錢數要減去
}
i=i+1;
}
Give_Change=Give_Change*10+0.0009;//浮點數運算的修正
Give_Change_Decimal=(int)Give_Change;//Give_Change_Decimal為所找錢數的小數部分
i=0;
while(i<=2 && Give_Change_Decimal>=1)//從大到小依次取硬幣,放到Take2[]里
{
while(Give_Change_Decimal<M2[i] && Give_Change_Decimal>=M2[i+1] && i<=2)
{
Take2[counter2++]=M2[i+1];
Give_Change_Decimal=Give_Change_Decimal-M2[i+1];//找完一枚硬幣,相應的錢數要減去
}
i=i+1;
}
while(j<counter1)//輸出所找紙幣,counter_same用於計算相同面值的紙幣
{
while(Take1[j]==Take1[j+1])
{
j++;
counter_same++;
}
printf("\n\n\t\t%d元的紙幣%d張",(int)Take1[j],counter_same);
j++;
counter_same=1; //輸出後計數器要初始化,以再次計數
}
j=0;
counter_same=1;
while(j<counter2)//輸出所找硬幣,counter_same用於計算相同面值的硬幣
{
while(Take2[j]==Take2[j+1])
{
j++;
counter_same++;
}
printf("\n\n\t\t%d角的硬幣%d枚",Take2[j],counter_same);
j++;
counter_same=1; //輸出後計數器要初始化,以再次計數
}
}
printf("\n\n\t\t");
system("pause");
}
D. 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
E. 用40元買蘋果、梨和西瓜,總數為100個,已知蘋果4元一個.梨0.2元一個,西瓜4.0元一個,問可以買幾個.
設蘋果x個,西瓜y個,梨z個,根據題意:
x+y+z=100............(1)
0.4x+4y+0.2z=40.....(2)
(2)*5-(1):x+19y=100
y=1,x=81,則z=18
y=2,x=62,則z=36
y=3,x=43,則z=54
y=4,x=24,則z=72
y=5,x=5,則z=90
答:蘋果81,西瓜1隻,梨18隻
或蘋果62,西瓜2隻,梨36隻
或蘋果43,西瓜3隻,梨54隻
或蘋果24,西瓜4隻,梨72隻
或蘋果5,西瓜5隻,梨90隻
你的串號我已經記下,採納後我會幫你製作
F. c語言問題急!!!(用貪心演算法)
題分析:
根據常識,我們到店裡買東西找錢時,老闆總是先給我們最大面值的,要是不夠再找面值小一點的,直到找滿為止。如果老闆都給你找分數的或者幾角的,那你肯定不幹,另外,他也可能沒有那麼多零碎的錢給你找。其實這就是一個典型的貪心選擇問題。
問題的演算法設計與實現:
先舉個例子,假如老闆要找給我99分錢,他有上面的面值分別為25,10,5,1的硬幣數,為了找給我最少的硬幣數,那麼他是不是該這樣找呢,先看看該找多少個25分的,誒99/25=3,好像是3個,要是4個的話,我們還得再給老闆一個1分的,我不幹,那麼老闆只能給我3個25分的拉,由於還少給我24,所以還得給我2個10分的和4個1分。
具體實現
Code:
//找零錢演算法//By falcon//輸入:數組m,依次存放從大到小排列的面值數,n為需要找的錢數,單位全部為分//輸出:數組num,對照數組m中的面值存放不同面值的硬幣的個數,就找錢方案 public static int[] zhaoqian(int m[],int n) { int k=m.length; int[] num=new int[k]; for(int i=0;i<k;i++) { num<i>=n/m<i>; n=n%m<i>; } return num; }
[Ctrl+A Select All]
演示代碼
Code:
public class zhaoqian{ public static void main(String[] args) { int m[]={25,10,5,1}; int n=99; int[] num=new int[m.length]; num=zhaoqian(m,n); System.out.println(n+"的找錢方案:"); for(int i=0;i<m.length;i++) System.out.println(num<i>+"枚"+m<i>+"面值"); } public static int[] zhaoqian(int m[],int n) { int k=m.length; int[] num=new int[k]; for(int i=0;i<k;i++) { num<i>=n/m<i>; n=n%m<i>; } return num; }}
[Ctrl+A Select All]
演示結果:
falcon@falcon:~/program/java$ javac zhaoqian.java
falcon@falcon:~/program/java$ java zhaoqian
99的找錢方案:
3枚25面值
2枚10面值
0枚5面值
4枚1面值
G. 硬幣找零(用C語言或C++)
和下面這道題目基本一樣,改動一點數字以及輸出語句就好了。
http://..com/question/418040990.html?oldq=1
H. 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++;
}
}
}
//基本是這么個思路,如果一點也不思考對你沒好處,原理就是找多了就換小的,盡量選大的錢
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);
}
}
J. 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;
}