下面这个代码使用getchar()为什么一直RE啊,不懂哇
查看原帖
下面这个代码使用getchar()为什么一直RE啊,不懂哇
607150
freegt楼主2023/6/9 11:14

下面这个代码使用getchar()为什么一直RE啊,不懂哇

#include<bits/stdc++.h>
using namespace std;
char a[40002];
int main(){
	char c=getchar();
	int i=1;
	while(c!='\n'){
		a[i]=c;
		c=getchar() ;
		i++;
	}
	int  n=i-1;
	for(int j=1;j<n;j++){
		c=getchar();
		while(c!='\n'){
			a[i]=c;
			c=getchar() ;
			i++;
		}
	}
	cout<<n<<" ";
	if(a[1]!='0') cout<<0<<" ";
	for(int i=1;i<n*n;i++){
		int k=1;
		while(a[i]==a[i+1]){
			k++;i++;//2 2  3  3
		} 
		cout<<k<<" ";	
	}	
	if(a[n*n]!=a[n*n-1]) cout<<1<<" ";
	//return 0;
} 

换成这个字符串数组输入代码才可以,到底为啥

#include<bits/stdc++.h>
using namespace std;
char a[40002];
int main(){
	string s[201];
	cin>>s[1];
	for(int i=2;i<=s[1].length();i++){
		cin>>s[i];
	}
	int m=1;
	int n=s[1].length();
	cout<<n<<" ";
	for(int i=1;i<=n;i++){
		for(int j=0;j<n;j++){
			a[m]=s[i][j];
			m++;
		}
	}
	if(a[1]!='0') cout<<0<<" ";
	for(int i=1;i<n*n;i++){
		int k=1;
		while(a[i]==a[i+1]){
			k++;i++;//2 2  3  3
		} 
		cout<<k<<" ";	
	}	
	if(a[n*n]!=a[n*n-1]) cout<<1<<" ";
	//return 0;
} 
2023/6/9 11:14
加载中...