帮忙改下C程序

来源:百度知道 编辑:UC知道 时间:2024/06/06 01:00:14
# include <stdio.h>
# define M 100
void exchange(char *name[],int ver,int array[],char *mname[])
{ int i=0,k,temp;
temp=ver;
printf("\n");
while(i<ver)
{
k=array[i];
printf("%s%s",name[k],mname[temp-1]);
temp--;
i++;
}
}
int input(int *po,int *p)
{ int loop=0,pp;
printf("\n请输入金额\n");
scanf("%d",po);
pp=*po;
while(pp>=1)
{
*p=pp%10;
p++;
pp=pp/10;
loop++;
}
return loop;
}
void inv(int *pointer,int ver)
{
int temp,*po,i=0,m,*p,*pp;
m=(ver-1)/2;
p=pointer;
po=pointer+ver-1;
pp=pointer+m;
for(;p<=pp;p++,po--)
{
temp=*p;*p=*po;*po=temp;
}
}
void main()
{
char *

int input(int *po,int *p)
{ int loop=0,pp;
float abc;
printf("\n请输入金额\n");
scanf("%f",&abc);
abc*=100.0;
*po=(int)abc;
pp=*po;
while(pp>=1)
{
*p=pp%10;
p++;
pp=pp/10;
loop++;
}
return loop;
}

你这个逻辑有问题的。
提示测试数据:1001,100001,1000001都会出现问题。
首先仔细分析下,人类到底是如何读数字的以及有那几条规则先

快停电了,提供一个思路,用字符串接受输入,以'.'分界,'.'左的和点右的分别显示中间加个“点”

把 int 改成 float