69,382
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<string.h>
char mycreat(char c[]);
int equ(char a[],char b[]);
main()
{
char a[100]="0",b[100]="0";
int n=0;
printf("A\n");
a[0]=mycreat(a);
printf("B\n");
b[0]=mycreat(b);
if(a[0]<b[0])
{
printf("A<B\n");
}
else if(a[0]>b[0])
{
printf("A>B\n");
}
else
{
n=equ(a[0],b[0]);
}
if(n==-1)
{
printf("A<B\n");
}
if(n==1)
{
printf("A>B\n");
}
}
char mycreat(char c[])
{
int i=-1;
do
{
i++;
scanf("%c",&c[i]); 执行到第三次循环时出现该内存不能written,为什么???
}
while(c[i]!='\n'&&i<100);
return c[0];
}
int equ(char a[],char b[])
{
int i=0,k=0,c[50]={0},max=-1,t=0,la_len=0,lb_len=0,n=0;
la_len=strlen(a);//这里也是个危险,用strlen时,必须保证字符串以'\0'结尾,不然后果很严重!!
lb_len=strlen(b);//同上!
while(i<=la_len||i<=lb_len)
{
k=0;
while(a[i]==b[i])
{
k++;
i++;
}
c[t]=k;
t++;
i++;
}
while(c[t])
{
if(c[0]>=c[t+1])
{
max=c[0];
}
else
{
max=c[t];
}
t++;
}
if(max==c[0])
{
if(a[max]<b[max])
{
n=-1;
}
else
{
n=1;
}
}
else
{
n=1;
}
return n;
}
#include<stdio.h>
#include<string.h>
char mycreat(char c[]);
int equ(char a[],char b[]);
int main()
{
char a[100] = "0", b[100]="0";
int n=0;
printf("A\n");
a[0]=mycreat(a);
printf("B\n");
b[0]=mycreat(b);
if(a[0]<b[0])
{
printf("A<B\n");
}
else if(a[0]>b[0])
{
printf("A>B\n");
}
else
{
n=equ(a[0],b[0]);
}
if(n==-1)
{
printf("A<B\n");
}
if(n==1)
{
printf("A>B\n");
}
}
char mycreat(char c[])
{
int i=-1;
do
{
i++;
//fflush(stdin);
scanf("%c",&c[i]); //执行到第三次循环时出现该内存不能written,为什么???
} while(c[i]!='\n'&&i<100);
return c[0];
}
int equ(char a[],char b[])
{
int i=0,k=0,c[50]={0},max=-1,t=0,la_len=0,lb_len=0,n=0;
la_len=strlen(a);
lb_len=strlen(b);
while(i<=la_len||i<=lb_len)
{
k=0;
while(a[i]==b[i])
{
k++;
i++;
}
c[t]=k;
t++;
i++;
}
while(c[t])
{
if(c[0]>=c[t+1])
{
max=c[0];
}
else
{
max=c[t];
}
t++;
}
if(max==c[0])
{
if(a[max]<b[max])
{
n=-1;
}
else
{
n=1;
}
}
else
{
n=1;
}
return n;
}