設有n個正整數,n<=20,每個正整數均在int范圍內,將它們連成一排組成一個最小的多位整數,并將結果保存至檔案。
例如:n=3時,3個正整數13,312,343,連接成的最小整數為13312343。
又如:n=4時,4個正整數7,13,4,246,連接成的最小整數為1324647。
uj5u.com熱心網友回復:
僅供參考:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int my_cmp(const void *a, const void *b)
{
char str1[10], str2[10];
sprintf(str1, "%d", *(int *)a);
sprintf(str2, "%d", *(int *)b);
return strcmp(str1, str2);
}
int main(void)
{
FILE *fp;
int a[20], n, i;
/* 輸入n的值 */
scanf("%d", &n);
if(n > 20)
{
printf("輸入n <= 20\n");
return 1;
}
/* 輸入n個整數 */
for(i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
/* 快速排序 */
qsort(a, n, sizeof(int), my_cmp);
/* 打開檔案 */
fp = fopen("result.txt", "w");
if(fp == NULL)
{
printf("打開檔案失敗\n");
return 1;
}
/* 輸出結果 */
for(i = 0; i < n; i++)
{
fprintf(fp, "%d", a[i]);
}
/* 關閉檔案 */
fclose(fp);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/238814.html
標籤:C語言
上一篇:一道難題,求幫助!
下一篇:撰寫程式!!
