uva332 Rational Numbers from Repeating Fractions尝试了十次一直WA,麻烦各位帮我看一下哪里遗漏,谢谢

x_hhhhh 2018-03-26 01:51:13
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 15

int Getsimple(int a, int b);
int Getpow(int a, int b);
int main()
{
int i, j, k, count=1, numerator, denominator, len, a, b, gcd; //gcd为最大公约数
char dec[SIZE], temp1[SIZE], temp2[SIZE];
while(scanf("%d", &j)!=EOF&&j!=-1)
{
a=0;
b=0;
scanf("%s", dec);
len=strlen(dec)-2;
k=len-j;
printf("Case %d: ", count);
for(i=2; i<len+2; i++) //temp1存放全部小数
{
temp1[a++]=dec[i];
}
temp1[a]='\0';
for(i=2; i<k+2; i++) //temp2存放非循环部分小数
{
temp2[b++]=dec[i];
}
temp2[b]='\0';
if(j==0) //如果不是循环小数
{
numerator=atoi(temp1);
denominator=1;
for(i=0; i<len; i++)
{
denominator*=10;
}
}
else
{
numerator=atoi(temp1)-atoi(temp2);
denominator=Getpow(10, j+k)-Getpow(10, k);
}
if(numerator)
{
gcd=Getsimple(numerator, denominator); //得到最大公约数
printf("%d/%d\n", numerator/gcd, denominator/gcd);
}
else //如果分子为0
printf("0\n");
count++;
}

return 0;
}

int Getsimple(int a, int b)
{
//求最大公约数
int r; //余数
int up=a, down=b;
while(r)
{
r=down%up;
down=up;
up=r;
}
return down;
}

int Getpow(int a, int b)
{
int i, temp=1;
if(b==0) return temp;
for(i=0; i<b; i++)
{
temp*=a;
}
return temp;
}
...全文
409 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2018-04-03
  • 打赏
  • 举报
回复
引用 2 楼 cfjtaishan 的回复:
需求描述的不明确,代码阅读起来不易懂。
有测试用例吗?贴出来
自信男孩 2018-04-03
  • 打赏
  • 举报
回复
需求描述的不明确,代码阅读起来不易懂。
jhams 2018-04-03
  • 打赏
  • 举报
回复
建议看下 提问的艺术
潘然PR 2018-04-03
  • 打赏
  • 举报
回复
引用 6楼自信男孩 的回复:
[quote=引用 5 楼 pan5690983 的回复:] Line15 scanf("%s", dec); 是不是少了一个取地址符号---> scanf("%s", &dec);
dec好像是数组名,数组名本身就是首地址。还需要加&?[/quote]啊啊 那应该是不用我的锅
自信男孩 2018-04-03
  • 打赏
  • 举报
回复
引用 5 楼 pan5690983 的回复:
Line15 scanf("%s", dec); 是不是少了一个取地址符号---> scanf("%s", &dec);
dec好像是数组名,数组名本身就是首地址。还需要加&?
潘然PR 2018-04-03
  • 打赏
  • 举报
回复
Line15 scanf("%s", dec); 是不是少了一个取地址符号---> scanf("%s", &dec);
赵4老师 2018-04-03
  • 打赏
  • 举报
回复
百度搜相关关键字。

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧