📄 deletenumber.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 + -