第一种(是搬运的)
#include<stdio.h>
#include<string.h>
int main()
{
float c;
char a[1000], b[1000];
int len, sum = 0;
scanf("%f", &c);
scanf("%s", &a);
scanf("%s", &b);
len = strlen(a);
for (int i = 0; i <= len; i++)
{
if (a[i] == b[i])
sum++;
}
if (((float)sum / len) >= c)
printf("yes");
else
printf("no");
return 0;
}
第二个(自己写的)
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[500] = { 0 };
char arr2[500] = { 0 };
int count = 0;
float p;
scanf("%f", &p); // 读取比例
getchar(); // 读取并丢弃 scanf 后的换行符
int i = 0;
while (i < 499 && (arr1[i] = getchar()) != '\n' && arr1[i] != EOF)
{
i++;
}
arr1[i] = '\0'; // 确保字符串以 null 字符结尾
i = 0;
while (i < 499 && (arr2[i] = getchar()) != '\n' && arr2[i] != EOF)
{
i++;
}
arr2[i] = '\0'; // 确保字符串以 null 字符结尾
// 比较两行字符
for (i = 0; i < strlen(arr1); i++)
{
if (arr1[i] == arr2[i])
count++;
}
// 比较相同字符的数量是否超过给定比例
if ((float)count/strlen(arr1)>= p)
printf("yes\n");
else
printf("no\n");
return 0;
}
自己写的过不了不懂为什么?
求大佬指点
谢谢!