为什么用gets(满分)就可以但是用fgets(0分)就不行了?
  • 板块P1765 手机
  • 楼主dtw35l
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/7/28 08:48
  • 上次更新2023/10/27 18:04:57
查看原帖
为什么用gets(满分)就可以但是用fgets(0分)就不行了?
559969
dtw35l楼主2022/7/28 08:48

我先是用的fgets后一提交零分,下载数据后在Dev-cpp上测也是对的,加上freopen也对,我看了题解发现dalao都用的gets或者getline,我就改成了gets就AC了

0分代码(用的fgets):

测评结果

#include <cstdio>
#include <cstring>


char str[250];
int ans, dict[200];

int main() {
	for (int i = 0; i < 200; i++) dict[i] = 1;
	dict['b'] = dict['e'] = dict['h'] = dict['k'] = 2;
	dict['n'] = dict['q'] = dict['u'] = dict['x'] = 2;
	dict['c'] = dict['f'] = dict['i'] = dict['l'] = 3;
	dict['o'] = dict['r'] = dict['v'] = dict['y'] = 3;
	dict['s'] = dict['z'] = 4;
	fgets(str, sizeof(str), stdin);
	str[strlen(str) - 1] = 0;
	for (int i = 0; i < strlen(str); i++) {
		ans += dict[str[i]];
	}
	printf("%d", ans);
	return 0;
}

AC代码(用的gets):

测评结果

#include <cstdio>
#include <cstring>


char str[250];
int ans, dict[200];

int main() {
	for (int i = 0; i < 200; i++) dict[i] = 1;
	dict['b'] = dict['e'] = dict['h'] = dict['k'] = 2;
	dict['n'] = dict['q'] = dict['u'] = dict['x'] = 2;
	dict['c'] = dict['f'] = dict['i'] = dict['l'] = 3;
	dict['o'] = dict['r'] = dict['v'] = dict['y'] = 3;
	dict['s'] = dict['z'] = 4;
	gets(str);
	str[strlen(str) - 1] = 0;
	for (int i = 0; i < strlen(str); i++) {
		ans += dict[str[i]];
	}
	printf("%d", ans);
	return 0;
}
2022/7/28 08:48
加载中...