數字刪除
【問題描述】
給定一個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;
}