2020深信服軟體測試崗程式設計題
阿新 • • 發佈:2020-10-16
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; }