c语言,从键盘输入一指定金额(以元为单位,如345.78),然后显示支付

作者&投稿:尚殷 (若有异议请与网页底部的电邮联系)
求助C语言,从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要~

a,b,c,d,e,f,g,h,i,j应为整型变量;角分处理做了点更改;
改后程序如下:
#include
int main()
{
float num;
int a,b,c,d,e,f,g,h,i,j;
printf("请输入一个金额如345.78
");
scanf("%f",&num);
a=(int)num/100;
b=(int)(num-a*100)/50;
c=(int)(num-a*100-b*50)/10;
d=(int)(num-a*100-b*50-c*10)/5;
e=(int)(num-a*100-b*50-c*10-d*5)/2;
f=(int)(num-a*100-b*50-c*10-d*5-e*2)/1;
g=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1)*10)/5;
h=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1-g*0.5)*10);
i=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1-g*0.5-h*0.1)*20)/5;
j=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1-g*0.5-h*0.1-i*0.05)*100);
printf("100元、50元、10元、5元、2元、1元、5角、1角、5分、1分各有%d,%d,%d,%d,%d,%d,%d,%d,%d,%d张",a,b,c,d,e,f,g,h,i,j);
return 0;
}

(int)作为取整运算的话,要考虑运算符优先级。
按照你的写法,运算过程实际上是先减掉一堆数,接着取整,然后做除法,这不是你要的结果。

对于这个特定问题用定点数运算比较好。

int value[] = {10000,5000,1000,500,200,100,50,10,5,1};
int count[10] = {}, type_count = sizeof(value)/sizeof(*value);

float k;
int unchanged = k * 100;
for (type=0; type<type_count; type++) {
count[type] = unchanged / value[type];
unchanged %= value[type];
}
printf("%.2f", k);
for (type=0; type<type_count; type++)
printf("%c%f*%d", type?'+':'=', value[type]*.01, count[type]);
printf("
");

a,b,c,d,e,f,g,h,i,j应为整型变量;角分处理做了点更改;
改后程序如下:
#include<stdio.h>
int main()
{
float num;
int a,b,c,d,e,f,g,h,i,j;
printf("请输入一个金额如345.78\n");
scanf("%f",&num);
a=(int)num/100;
b=(int)(num-a*100)/50;
c=(int)(num-a*100-b*50)/10;
d=(int)(num-a*100-b*50-c*10)/5;
e=(int)(num-a*100-b*50-c*10-d*5)/2;
f=(int)(num-a*100-b*50-c*10-d*5-e*2)/1;
g=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1)*10)/5;
h=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1-g*0.5)*10);
i=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1-g*0.5-h*0.1)*20)/5;
j=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1-g*0.5-h*0.1-i*0.05)*100);
printf("100元、50元、10元、5元、2元、1元、5角、1角、5分、1分各有%d,%d,%d,%d,%d,%d,%d,%d,%d,%d张",a,b,c,d,e,f,g,h,i,j);
return 0;
}


C语言编程,从键盘输入一字符串,将其中的小写字母全部转换成大写字母_百 ...
代码如下:include <stdio.h> include <stdlib.h> include <ctype.h> int main() { FILE *fp;if((fp=fopen("123.txt","a"))==NULL)printf("file cannot open \\n");else printf("file opened for writing \\n");char ch;while((ch = getchar()) != '\\n'){ fputc(toupper(ch),...

C语言:从键盘输入一个字符,可以是数字、字母或标点符号,对输入的字符...
include "stdio.h"void main(){ char ch;scanf("%c",&ch);if(ch>='0'&&ch<='9')printf("this is a number\\n");else if((ch>='a' && ch<='z')&&(ch>='A' && ch<='Z'))printf("this is a letter\\n");else printf("this is the other\\n");} 修改完毕 ...

C语言数组,从键盘输入一字符串,编一函数,其功能是将字符串下标为偶数的...
include <stdio.h> include <string.h>\/\/为strlen()函数提供原型 int main(){ char str[100];char ch[100];int i,j=0,length;printf("请输入字符串: ");gets(str);\/\/将输入的字符串存入数组str[]中 length=strlen(str);\/\/计算字符串的长度 for(i=0;i<length;i++)\/\/将原字符串中...

C语言题目描述: 从键盘上输入一个小写字母,然后将小写字母装换成大写...
可以参考下面的代码:include <stdio.h> void main(){ char ch;scanf("%c",&ch);if(ch>='A'&&ch<='Z'){ ch=ch+32;printf("%c\\n\\n",ch);}else{ printf("%c\\n\\n",ch);} }

C语言编程题:从键盘输入一个小写字母,在屏幕上显示其对应的大写字母_百 ...
【C语言输入小写字母,输出显示为大写字母主要用到字符】例子如下:直接编译,程序输出结果中输入任意小写字母,按回车,得到结果如下图所示:

c语言从键盘上输入一正整数n在以上含的正整数序列中找出20个各位数之...
c语言从键盘上输入一正整数n在以上含的正整数序列中找出20个各位数之和为5的整数  我来答 你的回答被采纳后将获得: 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)1个回答 #热议# 职场上受委屈要不要为自己解释?听不清啊 高粉答主 2018-06-29 · 繁杂信息太多,你要学会辨别 知道顶级...

从键盘输入一个三位整数,分别输出该数的个位数字,十位数字,百位数字,c...
int a,a0,a1,a2;scanf("%d",&a);a2=a\/100; \/*确定x百位的数*\/ a1=(a-a2*100)\/10; \/*确定x十位数*\/ a0=a-a2*100-a1*10; \/*确定x个位数*\/ printf("百十个位数分别为:d,%d,%d\\n",a2,a1,a0);} 以上就是用c语言输入一个三位数的步骤。告诉你们c语言的历史:C语言...

汇编语言,从键盘上输入一串字符串,当输入字符是回车时,显示输入的所有...
MOV DX, OFFSET MSG1 MOV AH, 9 ;9号功能调用,显示提示.INT 21H ;显示.MOV DI, OFFSET DDD2 LOP:MOV AH, 1 ;输入字符.INT 21H CMP AL, 13 JZ EXIT ;'回车'结束.MOV [DI], AL INC DI CMP DI, OFFSET DDD2 + 80 JZ EXIT ;输入80个字符...

在C语言中如何实现用键盘输入一个字符串,并打印出来?
在C语言中输入字符串后然后打印出来的编程方法如下:1.首先需要先定义一个存放字符串的数组空间,如给字符串100个数组空间。2.接着使用gets()函数来获取键盘输入的字符串。一般格式为gets(定义的字符数组名)。3.然后再使用puts()函数来输出之前输入的字符串内容。一般格式puts(定义的字符数组名)。4....

用C语言编写一个程序,从键盘上输入一个小写字母,将其本身及对应的大写字...
prinft("大写字母是:%c\\n",ch);} else(printf("请输入大写字母");)示例三:include <stdio.h> main(){ char c; \/\/声明变量 scanf("%c",&c); \/\/键盘上取值 printf("%c %c",c,ch-'a'+'A');\/\/本身和大写输出 } ...

省直辖县级行政单位18563355219: C语言程序设计题,懂的进 -
法佳盐酸: 那我就做 2 4 6 吧2随机产生的数组中最大值为:41,最小值为:10,平均值为:23.650000,个元素之和为:473.Press any key to continue#include#include "time...

省直辖县级行政单位18563355219: c语言编程超市促销,满200送40,键盘输入客户购买总金额,屏幕输出返送的金额数 -
法佳盐酸: #include<stdio.h> void main() { int money,back=0; printf("请输入客户购买总金额:\n"); scanf("%d",&money); if(money>0) back=money/200*40; printf("返送的金额数为:%d\n",back); }

省直辖县级行政单位18563355219: C语言编程实现,输入一个人民币小写金额值(不考虑角和分),转化为大写金额值输出.先实现基本功能,如输入1002300,可以输出“壹佰零拾零万贰仟叁佰零拾零元”. -
法佳盐酸: #include <iostream.h> #include <math.h> void main() {double x,i=10000000;int j=0;unsigned int quotient,remainder;bool beginFlag=0,zeroFlag=0; cout<<"请输入预转换数额(小于1亿):";cin>>x; while (x>=100000000){if (j>=2){...

省直辖县级行政单位18563355219: C语言:从键盘输入一笔钱(float money;)计算并输出该笔钱最多能拿出几张百元面值的人民币, -
法佳盐酸:#include "stdio.h" main() {float money; scanf("%f",&money); printf("%d",(int)money/100); }

省直辖县级行政单位18563355219: C语言编程实现,输入一个人民币小写金额值(不考虑角和分),转化为大写金额值输出.先实现基本功能,如输 -
法佳盐酸: c#的代码,包括角和分的情况 class Program{static void Main(string[] args){Console.WriteLine("input money (输入仟亿元以内):");string money = Console.ReadLine();string[] fenkai = money.Split('.');//按.分成两部分string[] ...

省直辖县级行政单位18563355219: 请问C语言中输入一个钱的数额如何显示出它的组成成分 -
法佳盐酸: cout<<"输入钱数,单位为元.例如512.35"<<endl;float fMoneyTotal=0;cin>>fMoneyTotal;DWORD64 dwMoneyTotalFeng;dwMoneyTotalFeng=(DWORD64)(fMoneyTotal*100.0f);DWORD64 dwYuanTotal=dwMoneyTotalFeng/100;...

省直辖县级行政单位18563355219: C语言编程请教高手!!!
法佳盐酸: 第一题很容易解决,英文字母的ASIC码都是连着的,所以用一个IF判断就可以实现了~再分是否最后三个字符(X、Y、Z)用加法就可以了~ 第二题是要尽量整钱对么?可以用除整取余方法~先把面额种类按大小排好,再顺着除以面值,得到该面...

省直辖县级行政单位18563355219: c语言中输入一个金额,看看各种面值的钱都有几张的程序 -
法佳盐酸: 你的问题:输入251. 其中100的2张,50的1张,1元的1张. 或者,100的1张,50的3张,1元的1张. 或者... 你是不是问有几种组合方法

省直辖县级行政单位18563355219: 用C#语言对于用户从键盘输入的一个数字,编程输出这一数字的人民币金 -
法佳盐酸: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Print { const int ZS = 0; const int XS = 1; public static void Main(string[] args) { ...

省直辖县级行政单位18563355219: C 语言关于单精度实数的问题 -
法佳盐酸: 对于实型数据没有绝对的相等,只有无限趋近相等,你如果想输出你输入的数据可以自定义一个打印函数专门处理这种情况,并且控制输出的位宽,就能解决这种情况,但你心里应该明白在内存中存储的并不是这个数.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网