删除数字问题

已知n位数字正整数a,去除任意k位数,使剩下数字按原次序排列成新正整数,使其最大

C语言

#include
#include
#define N 100
int del(char a[])
{int i,j,n;
n=strlen(a);//再测一边长度,为删除位数在1以上
for(i=0;i

重新排列最大

#include
#include
#define N 100
int del(char a[])
{int i,j,n;
n=strlen(a);//再测一边长度,为删除位数在1以上
for(i=0;i

使其最小

#include
#include
#define N 100
int del(char a[])
{int i,j,n;
n=strlen(a);//再测一边长度,为删除位数在1以上
for(i=0;ia[i+1])
{j=i;
break;
 } 
 if(i==j)//乱序时,左边的数大于右边时,删掉左边的数
 for(;i<=n;i++)
 a[i]=a[i+1];
 else
 j=i-1;//正序即从大到小排列或全部相等,删除最左边数
 return j;
}
int main()
{
	char a[N];
	int i,k,n,s;
	scanf("%s",a);//输入删除数字
	scanf("%d",&k);//删除位数
	n=strlen(a);
	s=0;
	if(k

重新排列最小

#include
#include
#define N 100
int del(char a[])
{int i,j,n;
n=strlen(a);//再测一边长度,为删除位数在1以上
for(i=0;ia[i+1])
{j=i;
break;
 } 
 if(i==j)//乱序时,左边的数小于右边时,删掉左边的数
 for(;i<=n;i++)
 a[i]=a[i+1];
 else
 j=i-1;//正序即从大到小排列或全部相等,删除最右边数
 return j;
}
int main()
{
	char a[N],m;
	int i,k,n,s;
	scanf("%s",a);//输入删除数字
	getchar();
	scanf("%d",&k);//删除位数
	n=strlen(a);
	s=0;
	if(ka[i+1])
	{m=a[i];
	a[i]=a[i+1];
	a[i+1]=m;
	}
	for(i=0;i<=n-k;i++)
	printf("%c",a[i]);
	printf("\n");}
	else
	printf("删除数字个数应小于长度"); 
}

你可能感兴趣的:(C,复习,c语言)