已经会写1234的输出了
但是怎么把.56跟1234分开 然后输出角和分 请高手指点
[此贴子已经被作者于2007-2-11 20:55:55编辑过]
----------------解决方案--------------------------------------------------------
你的意思是输入一个数, 然后输出RMB形式?
----------------解决方案--------------------------------------------------------
就关键问题我来举个例子,
double x=0.45678;
x乘以10后转换成int类型,然后求余,得到4,
x乘以100后转换成int类型,然后求余,得到5,
x乘以1000后转换成int类型,然后求余,得到6,
以此类推,赫赫~~~
----------------解决方案--------------------------------------------------------
不好意思,刚才写掉了几个字。。
就关键问题我来举个例子,
double x=0.45678;
x乘以10后转换成int类型,然后对10求余,得到4,
x乘以100后转换成int类型,然后对10求余,得到5,
x乘以1000后转换成int类型,然后对10求余,得到6,
以此类推,赫赫~~~
----------------解决方案--------------------------------------------------------
#include "stdio.h"
#include "string.h"
int STRPT(char *); //返回小数点前字符的个数
int main(void){
char RMB[15],*RMB_PT;
short int index;
fgets(RMB,14,stdin); //只允许输入14位字符.
*(RMB+(strlen(RMB)-1))='\0'; //把最后一位换行符('\n)替换成空字符.
index=STRPT(RMB);
for(RMB_PT=RMB;*(RMB_PT)!='\0'&&index!=-3;(RMB_PT)++,index--){
if(*(RMB_PT)!='.'){
printf("%c",*(RMB_PT));
switch(index){
case 9:printf("亿");break;
case 5:printf("万");break;
case 4:printf("千");break;
case 3:printf("百");break;
case 2:printf("拾");break;
case 1:printf("元");break;
case -1:printf("角");break;
case -2:printf("分");break;
}
}
else
continue ;
}
putchar('\n');
return 0;
}
int STRPT(char *str){
int ct=0;
while(*str!='.'&&*str!='\0'){
ct++;
str++;
}
return ct;
}
----------------解决方案--------------------------------------------------------
在VC6下可以运行 在win-tc下竟然不能显示汉字 并且加了getch()了 还一闪而过 郁闷
----------------解决方案--------------------------------------------------------
3楼好意心领了 我的意思你理解错了 呵呵
----------------解决方案--------------------------------------------------------