啊,在自己的两个编译器上都能正常运行,到了线上就全RE了。。。
查看原帖
啊,在自己的两个编译器上都能正常运行,到了线上就全RE了。。。
140686
邻羟基苯甲酸楼主2020/10/13 22:34

本人代码水平有限,代码显得有些乱。。。 基本思路是,每次读取文章中的一个词汇到一个数组中,将这个单词和给定的单词作比较。之后再进行下一个的输入和比较。

#include <stdio.h>
#include <ctype.h>
int main()
{
	char a[100];  char b[100];//a数组用来储存给定用来比较的单词,b数组用来储存给定文章中的每一个单词
	int i = 1;  char c;//c用来暂存当前读入的字符
	int flag = 1;//flag用来计数当前的字母出现在文章的哪一个位置上
	int m = 1;//m用来记录当前读入单词的首字母位于文章的哪一个位置上
	int n = 0;//n用来标记文章的结束
	int h = 0;//h用来标记当前是否位于一个单词内部,位于时为1
	int u = 0;//u用来记录给定单词的长度
	int o = 0;//o用来记录文章中每一个单词的长度
	int cs = 0;//cs用来记录单词在文章中出现的次数
	int y = 0;//y用来记录第一次出现的位置
	int k = 0;
	while ((c = getchar()) != '\n')
	{
		a[i] = tolower(c); i++; u++;
	}
	i = 1;
	for (int j = 1; n!=2; j++)
	{
		m = flag;
		while (k!=1&&( c = getchar()) != ' ')
		{
			flag++;
			if (c == '\n')
			{
				n = 1;  k = 1;
			}
			if (k != 1) {
				b[i] = tolower(c);  i++;  o++;
			}
		}
		if (n == 1)  n++;
		if (o != u)
		{
			flag++; m = flag; i = 1; o=0;  continue;
		}
		else
		{
			int panduan = 0;
			for (int l = 1; l <= o; l++)
			{
				if (b[l] != a[l])  panduan = 1;
			}
			if (panduan == 0)
			{
				cs++;
				if (y == 0)  y = m;
			}
		}
		flag++; m = flag; i = 1; o=0;
	}
	if (cs == 0)
	{
		printf("%d", -1);
	}
	else
	{
		printf("%d %d", cs, y-1);
	}
	return 0;
}
2020/10/13 22:34
加载中...