- 主页/
- 这是约德尔测试那道题为什么编译不能通过
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *Input(char *s)
{
s = (char *)malloc(1000*sizeof(char));
scanf("%s",s);
return s;
}
char *Change(char *s)
{
int len;
int i = 0;
len = strlen(s);
for(int i=0;i<len;i++)
{
if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')||(s[i]>='0'&&s[i]<='9'))
{
s[i] = '1';
}
else
{
s[i] = '0';
}
}
return s;
}
char *Blackham(char *s)
{
s = (char *)malloc(1000*sizeof(char));
scanf("%s",s);
return s;
}
void Free(char *s)
{
free(s);
}
void Equal(char *s,char *p)
{
int len;
float flag = 0;
len = strlen(s);
float a = 0;
for(int i = 0;i<len;i++)
{
if(s[i] == p[i])
{
flag++;
}
else
;
}
a = flag/len*100.0;
printf("%.2f%%",a);
}
void main()
{
char *s = NULL;
char *p = NULL;
char *q = NULL;
char *r = NULL;
p = Input(s);
q = Change(p);
r = Blackham(s);
Equal(q,r);
Free(q);
Free(r);
system("pause");
}