默写单词问题,为什么答案错了?
题目:Description
又要考四六级了,又要英语期末考试了,对于cxlove来说,学英语真的好苦逼。每次拿起词汇书都是从第一个背起,接下来请你帮cxlove解决这个头疼的问题
Input
多组数据
第一行:一个整数 n(n<1000) 表示词汇书上有n个单词
接下来n行:每一行一个单词,分别表示词汇书上的词汇
接下来n行:cxlove按顺序默写出的英文单词
Output
为了避免每次背重复的单词,请把cxlove拼错的单词列出来,按原先词汇书上的顺序。如果全部正确输出"Congratulation!",每一组测试数据之后加一个空行
Sample Input
Original Transformed
2
English
Chinese
bothersome
Chinese
Sample Output
Original Transformed
English
我写的是:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
char p[1000][50];
int main()
{
int n,flag=0;
char q[50];
while (scanf("%d", &n) != EOF)
{
char g[] = { 1 };
memset(p, 0, sizeof(p));
for (int i = 0;i < n;i++)
scanf("%s", p[i]);
for (int j = 0;j < n;j++)
{
scanf("%s", q);
if (strcmp(p[j], q) == 0)strcpy(p[j], g);
}
for (int k = 0;k < n;k++)
{
if (*p[k] != g[0])
{
printf("%s\n", p[k]);
flag = 1;
}
}
if (flag == 0)printf("Congratulation!");
printf("\n");
}
return 0;
}
是先默完再给正确答案还是?默一个,错了就马上输出答案?我两个都写了,都是答案错,为什么?以上我写的是全部默完再输出。求大神解答!