求助!!!我感觉我的思路没错,但是为啥才拿了30分。
查看原帖
求助!!!我感觉我的思路没错,但是为啥才拿了30分。
1316132
Fool30楼主2024/4/4 19:11
#include<iostream>
using namespace std;
//用线性表。
typedef struct list{
	int *s;
	int maxsize;
	int size;
}l;
//顺序表的初始化。
void init(l &l){
	l.maxsize=100000;
	l.s=new int[l.maxsize];
	if(l.s==NULL){
		cout<<"false i"<<endl;
		exit(1);
	}
	l.size=0;
}
//得出数据最高位的数据。
int pd(int n){
	int g;
	while(n>=10){
		n=n/10;
	}
	g=n;
	return g;
}
//表的输入。
void inser(l &l,int n){
	//超出容量了。 
	if(n>l.maxsize){
		cout<<"false inser"<<endl;
		exit(1);
	}
	//正常输入。
	for(int i=1;i<=n;i++){
		cin>>l.s[i];
	}
	l.size=n;
}
int main(){
	l l;
	init(l);
	int n;
	cin>>n;
	inser(l,n);
	int w=0;
	int i=1;
	while(i!=n){
		if(n==1){
			//单拿出来去判断了。 
			w=0;
		}else{
			if(l.s[i]%10!=pd(l.s[i+1])){
				w++;
				//直接将后面的值给前面,然后再次判断。 
				l.s[i+1]=l.s[i];
				i++;
			}else{
				i++;
				continue;
			}
		}
	}
	cout<<w<<endl;
	return 0;
}
2024/4/4 19:11
加载中...