?? 111.txt
字號:
已知數據文件IN.dat中存有200個四位數,并已調用讀函數rData()把這些數存入數組a中,請編寫函數spellNum(),其功能是:把個位數字和千位數字重新組成一個新的二位數(新二位數的十位數字是原四位數的個位數字,新二位數的個位數字是原四位數的千位數字),以及把百位數字和十位數字組成另一個新的二位數(新二位數的十位數字是原四位數的百位數字,新二位數的個位數字是原四位數的十位數字),如果新組成的兩個二位數一個是奇數,另一個為偶數,并且兩個二位數中至少有一個數能被17整除,同時兩個新數的十位數字均不為0,則將滿足此條件的四位數按從大到小的順序存入數組b中,并要計算滿足上述條件的四位數的個數count。最后main()函數調用寫函數wData(),把結果count以及數組b中符合條件的四位數輸出到OUT.dat文件中。
#include <stdio.h>
#define MAX 200
int a[MAX], b[MAX], count = 0;
void spellNum()
{ int i, thou, hun, ten, data, j;
int ab, cd;
for (i=0; i<200; i++)
{ thou = a[i]/1000;
hun = a[i]%1000/100;
ten = a[i]%100/10;
data = a[i]%10;
if (data==0 || hun==0)
continue;
ab = 10*data+thou;
cd = 10*hun+ten;
if ((ab-cd)%2!=0 && (ab*cd)%17==0)
{ b[count] = a[i];
count++;
}
}
for (i=0; i<count-1; i++)
for (j=i+1; j<count; j++)
if (b[i] < b[j])
{ data = b[i];
b[i] = b[j];
b[j] = data;
}
}
void rData()
{ int i;
FILE *fp;
fp = fopen("IN.dat", "r");
for (i=0; i<MAX; i++)
fscanf(fp, "%d,", &a[i]);
fclose(fp);
}
void wData()
{ FILE *fp;
int i;
fp = fopen("OUT.dat", "w");
fprintf(fp, "%d\n", count);
for (i=0; i<count; i++)
fprintf(fp, "%d\n", b[i]);
fclose(fp);
}
void main()
{ int i;
rData();
spellNum();
printf("滿足條件的數=%d\n", count);
for (i=0; i<count; i++)
printf("%d ", b[i]);
printf("\n");
wData();
}
文件中的內容:2161,4523,4568,2300,4169,3342,5648,5538,7784,9482,
6785,8794,8162,8972,4353,2561,1397,3746,5284,4632,
8535,8806,4098,1234,2348,4745,8964,7829,7896,1456,
6748,4268,7896,4856,8634,7428,7589,4869,1236,7542,
4853,7869,8534,4333,4523,8674,7141,8711,2253,7868,
8547,1644,6662,4785,3037,4569,9723,1741,1529,1778,
4316,2456,5190,4698,1288,4106,8967,9942,2446,5648,
1446,7896,1258,7412,4568,7350,7006,7524,7393,4548,
2629,4623,7084,2954,1756,3840,5966,8376,5931,9308,
8944,4583,7568,3323,9632,7567,6116,7789,5573,4421,
5833,5115,5639,3658,5704,1930,5977,3306,5673,5386,
6021,2745,8888,2072,7472,6829,9777,7573,6097,8512,
9444,7444,1161,1636,5555,7767,6655,7574,5031,4052,
5327,2150,8941,4724,5966,9934,5107,4191,1007,3337,
7457,4287,5864,2383,6945,5786,6209,1758,4226,4565,
7422,7946,1506,5030,8413,3168,1900,6591,1762,2655,
9410,7359,1624,3537,4548,7483,1595,5041,4602,7350,
2291,4836,1374,3020,5596,7021,1348,6199,2668,7484,
9281,5734,1053,2999,9418,1938,7900,4788,1127,1467,
4728,6893,7648,5483,9807,3421,6310,7617,5813,1514,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -