| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3232 人关注过本帖
标题:求助~~用函数找零钱程序
只看楼主 加入收藏
hhp_cr9
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-3-8
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:9 
求助~~用函数找零钱程序
编写一个兑换零钱的程序,用户输入总支付金额和账单,程序确定找零钱为几元,几角,几分。编写一个带3个输出参数的函数来确定每种钱币的数量。
搜索更多相关主题的帖子: 用户 
2011-03-09 16:34
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:8 
#include <stdio.h>
int *p[3];  //指针数组
void change(double pay,double cost) //pay付的钱,cost消费额,单位元
{
  int a,b,c;
  int payint,costint;
  payint=100*pay;  //化为分
  costint=100*cost; //化为分
  int chan=payint-costint;  //找零的钱
  if(chan==0)
  {
    a=0; b=0; c=0;
  }
  else
  {
    a=chan/100;
    b=(chan%100)/10;
    c=chan%10;
   }
   p[0]=&a; p[1]=&b; p[2]=&c;
}
void main()
{
    double pay,cost;
    printf("输入付帐的钱:");
    scanf("%f",&pay);
    printf("输入消费额:");
    scanf("%f",&cost);
    change(pay,cost);
    printf("找零:%d元%d角%d分\n",*p[0],*p[1],*p[2]);
}  //3个输出参数,没有办法吧!只能用数组或者指针了!
收到的鲜花
  • hhp_cr92011-03-09 19:02 送鲜花  1朵  

   唯实惟新 至诚致志
2011-03-09 18:09
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
收藏
得分:2 
方法很多,知识度要求最少的就如下
#include<stdio.h>
main()
{
    char zong_jin_e[],zong_jin_e1[];
    char ying_fu[],ying_fu1[];
//按元为单位如:3.76元
    int n=0,x,y;
    char *p=zong_jin_e,*p1=ying_fu;
    while()
    {
    scanf("%c",p++);
    ++n;
    if(*p='.')
        {strncpy(zong_jin_e1,zong_jin_e,n);scanf("%c",++p);
        x=*p;y=*p;
}
   
}
}

未完成,没时间了,如果看懂了就接着写,虽然这个算法比较烂,但简单
2011-03-09 18:32
hhp_cr9
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-3-8
收藏
得分:0 
回复 2楼 qq1023569223
你的这个怎么不对呀????我看也没有毛病啊……可是就是运行不出来
2011-03-09 18:41
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:5 
#include<stdio.h>
#include<stdlib.h>
int j,k,l;
void change(int a)
{
j=a/100;
k=a%100/10;
l=a%10;
}
main()
{
int a[2],b[2],c[2],d[2],e;
scanf("%d,%d,%d",&a[0],&b[0],&c[0]);
d[0]=a[0]*100+b[0]*10+c[0];
scanf("%d,%d,%d",&a[1],&b[1],&c[1]);
d[1]=a[1]*100+b[1]*10+c[1];
e=d[1]-d[0];
change(e);
printf("%d,%d,%d",j,k,l);
}
这个试试

粗心是大敌
2011-03-09 19:26
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
回复 4楼 hhp_cr9
我也改不出来

   唯实惟新 至诚致志
2011-03-09 19:40
xxfxie51
Rank: 1
等 级:新手上路
帖 子:3
专家分:9
注 册:2011-1-19
收藏
得分:5 
p[0]=&a
函数已经释放 找不到a了?
2011-03-09 21:01
hhp_cr9
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-3-8
收藏
得分:0 
回复 7楼 xxfxie51
应该不是吧,他写的代码没有问题……
2011-03-09 21:04
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:0 
#include <stdio.h>
int *p[3];  
void change(double pay,double cost)
{
  int a,b,c;
  int payint,costint,chan;
  payint=100*pay;  
  costint=100*cost;
  chan=payint-costint;  //
  if(chan==0)
  {
    a=0; b=0; c=0;
  }
  else
  {
    a=chan/100;
    b=(chan%100)/10;
    c=chan%10;
   }
   p[0]=&a; p[1]=&b; p[2]=&c;
}
void main()
{
    double pay,cost;
    printf("输入付帐的钱:");
    scanf("%lf",&pay);//
    printf("输入消费额:");
    scanf("%lf",&cost);//
    change(pay,cost);
    printf("找零:%d元%d角%d分\n",*p[0],*p[1],*p[2]);
}  
改了下2楼高手的 虽然能运行了  但结果貌似不正确呢 (总是少找1分如果输入的数有分的话) 可能编译器的问题吧
 

[ 本帖最后由 zzgzzg00 于 2011-3-9 21:31 编辑 ]

粗心是大敌
2011-03-09 21:16
q65056881
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-6-11
收藏
得分:0 
1111

[ 本帖最后由 q65056881 于 2012-6-12 13:12 编辑 ]
2012-06-11 14:48
快速回复:求助~~用函数找零钱程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032080 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved