91.已知數(shù)據(jù)文件IN.dat中存有200個四位數(shù),并已調用讀函數(shù)RData()把這些數(shù)存入數(shù)組a中,請編寫函數(shù)spellVal(),其功能是:把千位數(shù)字和十位數(shù)字重新組成一個新的二位數(shù)ab(新二位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新二位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字組成另一個新的二位數(shù)cd(新二位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新二位數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字),如果新組成的兩個二位數(shù)ab-cd≥10且ab-cd≤20,并且兩個數(shù)均是偶數(shù),同時兩個新數(shù)的十位數(shù)字均不為0,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個數(shù)count。最后main()函數(shù)調用寫函數(shù)WData(),把結果count以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.dat文件中。
【答案】
void spellVal()
{ 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 (thou==0 || data==0)
continue;
ab = 10*thou+ten;
cd = 10*data+hun;
if ((ab-cd)>=10 && (ab-cd)<=20 && ab%2==0 && cd%2==0)
{ b[count] = a[i];
count++;
}
}
for (i=0; i for (j=i+1; j if (b[i] < b[j]) { data = b[i]; b[i] = b[j]; b[j] = data; } } 92.已知在文件IN.dat中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼code(字符型4位)、產(chǎn)品名稱name(字符型10位)、單價uprice(整型)、數(shù)量amount(整型)、金額sum(長整型)五部分組成。其中:金額=單價×數(shù)量。函數(shù)RData()是讀取這100個銷售記錄并存入結構數(shù)組sell中。請編寫函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱從大到小進行排列,若產(chǎn)品名稱相等,則按金額從小到大進行排列,最終排列結果仍存入結構數(shù)組sell中。最后調用函數(shù)WData(),把結果輸出到文件OUT.dat中。 【答案】 void SortDat() { int i, j; PRO temp; for (i=0; i for (j=i+1; j if (strcmp(sell[i].name, sell[j].name) < 0) { temp = sell[i]; sell[i] = sell[j]; sell[j] = temp; } else if(strcmp(sell[i].name, sell[j].name) == 0) { if (sell[i].sum > sell[j].sum) { temp = sell[i]; sell[i] = sell[j]; sell[j] = temp; } } } 93.已知數(shù)據(jù)文件IN.dat中存有200個四位數(shù),并已調用讀函數(shù)RData()把這些數(shù)存入數(shù)組a中,請編寫函數(shù)oddVal(),其功能是:依次從數(shù)組a中取出一個四位數(shù),如果該四位數(shù)連續(xù)大于該四位數(shù)以前的5個數(shù)且該數(shù)是奇數(shù),并且該數(shù)必須能被7整除(該四位數(shù)前不滿5個數(shù),則不統(tǒng)計),則統(tǒng)計出滿足此條件的個數(shù)count并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。最后調用寫函數(shù)WData(),把結果count以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.dat文件中。 【答案】 void oddVal() { int i, j, flag = 0; for (i=5; i { for (j=i-5; j
{ if (a[i] > a[j]) { flag = 1; } else { flag = 0; break; } } if (flag==1 && a[i]%2==1 && a[i]%7==0) { b[count] = a[i]; count++; } } for (i=0; i for (j=i+1; j if (b[i] < b[j]) { flag = b[i]; b[i] = b[j]; b[j] = flag; } }
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |