比较两个分数的大小(100分)

  • 主题发起人 主题发起人 不弯的月
  • 开始时间 开始时间

不弯的月

Unregistered / Unconfirmed
GUEST, unregistred user!
比较两个分数的大小。
输入:4/5,6/7,输出4/5 < 6/7;
输入:16/32,4/8,输出:16/32 = 4/8。
 
比较小数不行么?
 
不行
我想差不多的吧
 
function IsfEuqal(f1, f2: string): string;
var
i: integer;
s11, s12, s21,s22: string;
fl1,fl2:do
uble;
begin
i:=pos('/', f1);
s11:=copy(f1,1,i-1);
s12:=copy(f1,i+1,length(f1)-i);
fl1:=strtofloat(s11)/strtofloat(s12);
i:=pos('/', f2);
s21:=copy(f2,1,i-1);
s22:=copy(f2,i+1,length(f2)-i);
fl2:=strtofloat(s21)/strtofloat(s22);
if fl1>fl2 then
result:=f1+' > '+f2
else
if fl1=fl2 then
result:=f1+' = '+f2
else
result:=f1+' < '+f2
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(IsfEuqal('4/5','6/7'));
showmessage(IsfEuqal('16/32','4/8'));
end;
 
这个程序对于我的水平来说似乎有点复杂
可以简单明了写吗?
我的水平有限啊
 
恐怕这是最简单的了。
 
我在其他地方获得的答案,你可以试着运行一下,下面这个我还可以理解
你的水平太高了,超出我的理解范围了,说明你对我来说是一个高手。
#include <stdio.h>
#include <stdlib.h>
void main()
{
float a[4];
int j=0,k[4]={0};

char ss[80],s[4][40],*i;
printf("Enter a/b,c/d : ");
scanf("%s",ss);
for(i=ss;*i;i++)
if(*i==','||*i=='/')j++;
else
{ s[j][k[j]]=*i;k[j]++;
}
for(j=0;j<4;j++)
{
s[j][k[j]]='/0';
a[j]=atof(s[j]);
}
if(a[0]/a[1]>a[2]/a[3])
printf("%s/%s > %s/%s/n/n",s[0],s[1],s[2],s[3]);
else
if(a[0]/a[1]==a[2]/a[3])
printf("%s/%s = %s/%s/n/n",s[0],s[1],s[2],s[3]);
else
printf("%s/%s < %s/%s/n/n",s[0],s[1],s[2],s[3]);
getch();
}
 
分数给你,希望你对我给出的答案提点建议!谢谢!
 
你原先是学 C 语言的吧?我给你的是 Delphi 代码。
你给的 C 代码是叫用户依次输入 a/b,c/d 然后扫描用户输入,将两个分数的分子、分母存入数组 a 中,然后进行比较。
不知道你是不是要 Delphi 代码?
 
呵呵,我是刚学C语言的,大一新生,说句真话,连编程的门都还没有入啊!
哎,现在真的挺烦的,好想把它学好,但是似乎又没有方向!!不知道该怎么办??
还是一点一点来吧!!
 
也不知道该怎么去学习编程,希望可以给点建议!!!谢谢了!!
 
刚开始是会觉得没头绪,坚持一段时间就会好的。从易到难,不要急于求成。一切都会好的。
 
谢谢你给的建议!!说起来容易,做起来难啊!其实这些我也懂,我也会坚持的!!!有没有具体点的措施,比如说在教材方面之类的要求。其实主要还是靠自学的。
 
后退
顶部