⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deletenumber.cpp

📁 删数问题
💻 CPP
字号:
//删数问题:
//前面的数比它后面的数大就删掉 
//如果整个数已经是从小到大排列,就直接把末尾的数删掉 
#include <iostream> 

using namespace std; 

const int Limit_Size = 21; 
const int Buffer_Size = 50;

char num[ Limit_Size ]; 
int S, len; 

void work( ) 
{ 
	int i, j, k; 
	for ( i = 0; i < S; i++ ) 
	{ 
		for ( j = 0; j < len - 1; j++ ) 
			if ( num[ j ] > num[ j + 1 ] ) 
				{ 
					for ( k = j; k < len - 1; k++ ) 
					num[ k ] = num[ k + 1 ]; 
					break; 
				} 
		len--; 
	} 
} 

void print( ) 
{ 
	int i; 
	if ( len <= 0 ) 
		cout << 0; 
	else 
	for ( i = 0; i < len; i++ ) 
		cout << num[ i ]; 
	cout << endl; 
} 

int main( ) 
{ 
	char buffer[Buffer_Size];
	for(int n=0; n<Buffer_Size; n++)
	{
		buffer[n]=' ';
	}

	int count=0;
	int i=0;
	int j=0;
	FILE *pf;
	if((pf=fopen("input.txt","r"))==NULL)
		printf("File could not be opened\n");
	else{
		cout<<"要进行删减的数为:";
		while(fscanf(pf,"%c",&buffer[i++])!=EOF);

		for(j=0; j<i; j++)
		{
			if((int)buffer[j]==10){
				break;
			}
			else{
				num[j]=buffer[j];
				cout<<num[j];
			}
		}
	 }
//	cout<<"j="<<j<<endl;
//	cout<<(int)(buffer[j+1]-48)<<endl;
	for(int m=j+1; m<Buffer_Size; m++)
	{
		if(((int)buffer[m]==32)||((int)buffer[m]==10))
			break;
		else
			count = count * 10 + (int)(buffer[m]-48);
	}
//	cout<<"count="<<count<<endl;
	cout<<endl;
	cout<<"要删减的数字个数为:"<<count<<endl;
	S = count;
	len = strlen( num );
	
	work( ); 
	print( ); 

	return 0; 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -