C 語言 數字刪除

數字刪除

【問題描述】

給定一個r位(r<1000)正整數C,去掉其中任意s個數字後將剩餘的數字按原來的左右順序組成一個新的正整數,使得新組成的數的值最大。

【輸入形式】

從標準輸入讀入n+1行,其中第一行是正整數s(s<800),以下n行是正整數C的各位數字,以及可能的空格符和換行符。

【輸出形式】

將計算結果寫到標準輸出上,每50個數字一行,每5個數字之間由一個空格符分隔。

【輸入樣例1】

2

123 321

【輸出樣例1】

3321

【輸入樣例2】

1

12345 67

89

【輸出樣例2】

23456 789



北航的一道C語言期末考試題  說實話做了很長時間  感謝王洪君老師的幫助。


#include <stdio.h>

int r[1000];

int main()
{
	int i = 0, j, s, b, k, l, a;
	scanf("%d", &s);
	while (EOF != (a = getchar()))//給數組賦值//
	{
		if ((a >= '0') && (a <= '9')){
			i++;
			r[i] = a - '0';
		}
	}
	b = i;


	for (l = 1; l <= s; l++)
	{
		i = 1;
		while (r[i]>=r[i+1])
			i++;
		for (j = i; j <= b - 1; j++)
		{

			r[j] = r[j + 1];

		}
	}
		for (k = 1; k <= b - s; k++){
			printf("%d", r[k]);
			if ((k % 5 == 0) && (k % 50 != 0))
				printf(" ");
			if (k % 50 == 0)
				printf("\n");

		}
		system("pause");
		return 0;
	}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章