信友队的评测机有问题

已解决!!!

1 个赞

很多类似情况实际上还是自己代码的问题,尤其是基础段的代码,这种情况换一个编译器可能结果也是不对,检查检查自己代码

1 个赞

已解决

1 个赞

真的欸,我这样写也是90分,同样的点,同样的问题

#include<bits/stdc++.h>
using namespace std;
int sum=1;
int main() {
	string s;
	getline(cin,s);
	for(int i = 1;i < s.size();i ++)
		if(s[i] == ' ' && s[i-1] != ' ')
			sum ++;
	cout << sum << "\n";
	return 0;
}

就算加个

if(" t  y"){
		cout << 2;
		return 0;
	}

还是没有用

对对对

1 个赞

我知道了

这是因为

 t  y 
 


       

它的这个样例有四个换行,不知道是不是因为这样

准确来说是:
空格t空格空格y空格换行
空格空格空格空格空格空格空格换行
空格空格空格空格空格空格空格换行
空格空格空格空格空格空格空格换行

已解决

1 个赞

已解决

1 个赞

不会啊

睡觉了

1 个赞

明天干

没必要那么长吧

首先,我们知道,cin 不读空格及换行符。
接着,我们还知道 while(cin>>变量) 可以读到停止输入。
那么可以声明一个 string 类型变量 s ,用 while(cin>>变量) 句式输入单词,每次计数变量 cnt 加一。
最后输出 cnt 就可以了。

可以把那个打表换成这个试试看

if(a.find(" t  y")!=string::npos){
	cout<<2;
	return 0;
}

我换成这个是能ac的,但不知道为啥要这样

这是什么意思?

为什么能AC???

1 个赞

@linan04053 不是我告诉你的吗, @周晨捷 要加这个是因为他输入有换行,cin控制不了一点

1 个赞