背景:一个正整数的倒数是1除以那个整数。举例来说,37 的倒数是 1/37。有些正整数的倒数是可以用十进制的有限不循环小数表示的,这些正整数包括:
你的任务是求出这样一些整数的倒数,并用十进制表示出来。 输入:输入的第一行是要处理的正整数的个数,后面每一行输入一个正整数。每一个正整数都符合以下条件:
输出:对于每一个正整数,输出以精确的十进制表示的该数的倒数。每个结果一行。
|
背景:一个正整数的倒数是1除以那个整数。举例来说,37 的倒数是 1/37。有些正整数的倒数是可以用十进制的有限不循环小数表示的,这些正整数包括:
你的任务是求出这样一些整数的倒数,并用十进制表示出来。 输入:输入的第一行是要处理的正整数的个数,后面每一行输入一个正整数。每一个正整数都符合以下条件:
输出:对于每一个正整数,输出以精确的十进制表示的该数的倒数。每个结果一行。
|
背景:一个正整数的倒数是1除以那个整数。举例来说,37 的倒数是 1/37。有些正整数的倒数是可以用十进制的有限不循环小数表示的,这些正整数包括:
你的任务是求出这样一些整数的倒数,并用十进制表示出来。 输入:输入的第一行是要处理的正整数的个数,后面每一行输入一个正整数。每一个正整数都符合以下条件:
输出:对于每一个正整数,输出以精确的十进制表示的该数的倒数。每个结果一行。
|
帖子少写个0.25吧?
期待的输出 |
|
我不钱 ,给点金币就满足了
[CODE]
#include "stdio.h"
#include "malloc.h"
#include "math.h"
#define MAX 100
int main()
{
long *resource,k;
int result[MAX]={0},num,i,j;
printf("please input the num of tese data:\n");
scanf("%d",&num);
resource=(long *)malloc( sizeof(long) *num );
printf("please input the test data:\n");
for(i=0;i<num;i++)
scanf("%ld",&resource[i]);
for(i=0;i<num;i++)
{
j=0; k=1;
if(resource[i]==1)
{
printf("1\n");
continue;
}
while(resource[i]%10==0)
{
result[j++]=0;
resource[i]/=10;
}
if ( resource[i]==1 )
{
result[j-1]=1;
k=0;
}
while(k!=0&&j<MAX)
{
while( (k*=10)<resource[i] )
result[j++]=0;
result[j++]=k/resource[i];
k %= resource[i];
}
printf("0.");
for(k=0;k<j;k++)
{
printf("%d",result[k]);
result[k]=0;
}
printf("\n");
}
free(resource);
return 0;
}
[/CODE]
C-Free(XP) 正确运行