1. 程式人生 > 實用技巧 >2020深信服軟體測試崗程式設計題

2020深信服軟體測試崗程式設計題

2020深信服軟體測試崗程式設計題

題目描述:

輸入一個8位數字和指定剔除的位數,將剩餘數字從大到小列印。若不符合要求則列印error如:輸入95137462 2,則輸出9764321
如:輸入95137462 9, 則輸出error
如:輸入95137462123 1 則輸出error

輸入描述:

輸入:八位有效數字,剔除指定第幾位(空格間隔)

輸出描述:

輸出:剩餘7個數字按從大到小排序輸出

示例1

輸入:95137462 2

輸出:9764321

程式碼:

#include <stdio.h>
#include <string.h>

void swap(char
*a, char *b) { char temp; temp = *a; *a = *b; *b = temp; } int main() { char str[9]; int n; scanf("%s %d", str, &n);
// 判斷輸入是否正確
if(n < 1 || n > 8) { printf("error"); } if(strlen(str) != 8) { printf("error"
); }
// 剔除掉指定的一位數字
char strtemp[8]; int i, j; for(i=0,j=0;i<8;i++) { if(i == n-1) { continue; } else { strtemp[j] = str[i]; j++; } } // 排序 for(i=0;i<7;i++) { for
(j=0;j<7-i-1;j++) { if(strtemp[j] < strtemp[j+1]) { swap(&strtemp[j], &strtemp[j+1]); } } } // 輸出 for(i=0;i<7;i++) { printf("%c", strtemp[i]); } return 0; }