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;
}