freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計算機(jī)三級數(shù)據(jù)庫上機(jī)題庫(已修改)

2025-06-19 22:46 本頁面
 

【正文】 (),(m和k值),并嵌套調(diào)用primenum函數(shù)分別得出array[]數(shù)組。請編寫函數(shù)primenum(int m,int k,int array[]),該函數(shù)的功能是:將緊靠m的k個素數(shù)存入數(shù)組array并在屏幕上顯示。例如,若輸入3 9,則應(yīng)輸出5 7 11 13 17 19 23 29 31。注意:部分程序已經(jīng)給出。請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)rwdata()的內(nèi)容。include include void rwdata()。void primenum(int m, int k, int array[]){}main(){ int m, n, array[1000]。 printf(\nPlease enter two integers:)。 scanf(%d%d, amp。m, amp。n)。 primenum(m, n, array)。 for (m=0。 mn。 m++) printf(%d , array[m])。 printf(\n)。 rwdata()。}void rwdata(){ int m, n, array[1000], i。 FILE *readfile, *writefile。 readfile = fopen(, r)。 writefile = fopen(, w)。 for (i=0。 i10。 i++) { fscanf(readfile, %d %d, amp。m, amp。n)。 primenum(m, n, array)。 for (m=0。 mn。 m++) fprintf(writefile, %d , array[m])。 fprintf(writefile, \n)。 } fclose(readfile)。 fclose(writefile)。}【知識點播】素數(shù)的定義:如果一個數(shù)的正因子只有1和這個數(shù)本身,那么這個數(shù)就是素數(shù)?!绢}目分析】分析題目可知,題中需要解決的問題就是Primenum函數(shù)的功能問題(rwdata函數(shù)功能題中已經(jīng)給出),而Primenum函數(shù)的功能是求在指定數(shù)m之后的k個素數(shù),因此本題的關(guān)鍵在于如何判斷一個數(shù)是素數(shù),之后就可以通過一個for循環(huán)來求得在m之后的k個素數(shù)了?!窘忸}思路】根據(jù)素數(shù)的定義,本題采用的算法是:首先定義一個變量Value,并把m之后的數(shù)逐個賦值給該變量;然后用2~value/2數(shù)除value,如果value能被2~value/2之中的任何一個整數(shù)整除,則value不是素數(shù),結(jié)束循環(huán);如果value不能被2~value/2之間的任一整數(shù)整除,則退出循環(huán),然后判斷循環(huán)變量i是否大于value/2,如果大于,則value是素數(shù),并將value值賦給array[n],然后n++;再判斷n是否大于等于k,如果大于等于k,就完成了程序要求的功能,退出循環(huán),否則value加1,根據(jù)以上算法繼續(xù)進(jìn)行。【答案】void primenum(int m, int k, int array[]){ int value = m+1。 int half, n = 0, i。 while(1) { half = value/2。 for (i=2。 i=half。 i++) if (value%i == 0) break。 if (i half) { array[n] = value。 n++。 } if (n = k) break。 value++。 }}【容錯分析】判斷一個數(shù)m(大于1)是否素數(shù)的簡單的算法:枚舉2到m/2之間的整數(shù),看能否被m整除,如果能整除,就不是素數(shù),否則是素數(shù)。,且每個數(shù)均在1000~9999之間。函數(shù)RData()讀取這200個數(shù)存放到數(shù)組original中。請編寫函數(shù)numAscend(),其功能是:要求按每個數(shù)的后3位的大小進(jìn)行升序排列,然后取出滿足此條件的前10個數(shù)依次存入數(shù)組result中,如果后3位的數(shù)值相等,則按原先的數(shù)值進(jìn)行降序排列。最后調(diào)用函數(shù)WData()。例如,處理前:6012 5099 9012 7025 8088處理后:9012 6012 7025 8088 5099注意:部分程序已給出。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)RData()和輸出數(shù)據(jù)函數(shù)WData()的內(nèi)容。include include include int original[200], result[10]。void numascend() {}void RData(){ FILE *in。 int i。 in = fopen(, r)。 for (i=0。 i200。 i++) fscanf(in, %d, amp。original[i])。 fclose(in)。}void WData(){ FILE *out。 int i。 out = fopen(, w)。 for (i=0。 i10。 i++) { printf( %d, result[i])。 fprintf(out, %d\n, result[i])。 } fclose(out)。}void main(){ RData()。 numascend()。 WData()。}【題目分析】首先我們來看看題中要求我們解決的問題有哪些。①按original數(shù)組中各元素數(shù)字的后3位數(shù)的大小進(jìn)行升序排列,如果數(shù)值相等,則按原先的數(shù)值進(jìn)行降序排列;②取出排序后的original數(shù)組中的前10個數(shù)依次存入result數(shù)組中?!窘忸}思路】根據(jù)上面的分析,編寫程序有以下幾個步驟:第1步:首先分解出數(shù)組中兩個元素的后三位,這里采用在兩次循環(huán)中求出正整數(shù)original[i]和original[j]對1000的余數(shù)的方法;第2步:然后比較兩個數(shù)余數(shù)的大小,如果正整數(shù)original[i]和original[j]對1000的余數(shù)不相同,則按照升序進(jìn)行排序,如果相同,則比較original[i]和original[j]的大小,按照降序進(jìn)行排序;第3步:利用一個for循環(huán)語句把original數(shù)組中的前10個數(shù)輸出給result數(shù)組?!敬鸢浮縱oid numascend() { int i, j, data。 for (i=0。 i199。 i++) for (j=i+1。 j200。 j++) { if (original[i]%1000 original[j]%1000) { data = original[i]。 original[i] = original[j]。 original[j] = data。 } else if (original[i]%1000 == original[j]%1000) { if (original[i] original[j]) { data = original[i]。 original[i] = original[j]。 original[j] = data。 } } } for (i=0。 i10。 i++) result[i] = original[i]。}容錯分析:數(shù)組original[i]中兩個數(shù)的位置交換要借助中間變量data。,每個產(chǎn)品銷售記錄由產(chǎn)品代碼code(字符型4位)、產(chǎn)品名稱name(字符型10位)、單價uprice(整型)、數(shù)量amount(整型)、金額sum(長整型)5部分組成。其中:金額=單價數(shù)量。函數(shù)RData()讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編寫函數(shù)DescSort(),其功能要求:按產(chǎn)品代碼從大到小進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WData()。注意:部分程序已給出。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)RData()和輸出數(shù)據(jù)函數(shù)WData()的內(nèi)容。include include include include define MAX 100typedef struct{ char code[5]。 /* 產(chǎn)品代碼 */ char name[11]。 /* 產(chǎn)品名稱 */ int uprice。 /* 單價 */ int amount。 /* 數(shù)量 */ long sum。 /* 金額 */} PRO。PRO sell[MAX]。void RData()。void WData()。void DescSort(){}void main(){ memset(sell, 0, sizeof(sell))。 RData()。 DescSort()。 WData()。}void RData(){ FILE *fp。 char str[80], ch[11]。 int i。 fp = fopen(, r)。 for (i=0。 i100。 i++) { fgets(str, 80, fp)。 memcpy(sell[i].code, str, 4)。 memcpy(sell[i].name, str+4, 10)。 memcpy(ch, str+14, 4)。 ch[4] = 0。 sell[i].uprice = atoi(ch)。 memcpy(ch, str+18, 5)。 ch[5] = 0。 sell[i].amount = atoi(ch)。 sell[i].sum = (long)sell[i].uprice * sell[i].amount。 } fclose(fp)。}void WData(void){ FILE *fp。 int i。 fp = fopen(, w)。 for (i=0。 i100。 i++) { printf(%s %s %4d %5d %5d\n, sell[i].code, sell[i].name, sell[i].uprice, sell[i].amount, sell[i].sum)。 fprintf(fp, %s %s %4d %5d %5d\n, sell[i].code, sell[i].name, sell[i].uprice, sell[i].amount, sell[i].sum)。 } fclose(fp)。}【題目分析】首先我們來看看題中要求我們解決的問題有哪些。①按產(chǎn)品代碼從大到小進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列;②將排列結(jié)果存入結(jié)構(gòu)數(shù)組sell中。分析題目可知,本題中使用結(jié)構(gòu)數(shù)組sell來保存銷售記錄。產(chǎn)品代碼存儲在sell結(jié)構(gòu)數(shù)組中的code成員中,金額存儲在sum成員中。【解題思路】我們可以利用兩個for循環(huán)結(jié)構(gòu)對產(chǎn)品銷售記錄(strcmp(sell[i].code,sell[j].code))兩兩進(jìn)行循環(huán)比較,如果這個表達(dá)式返回結(jié)果值小于0,則進(jìn)行兩個數(shù)據(jù)的交換,實現(xiàn)產(chǎn)品代碼從大到小進(jìn)行排序。如果上面的表達(dá)式的返回值等于0,說明這兩個產(chǎn)品的代碼相同,則比較sell[i].sum與sell[j].sum的值。如果sell[i].sum sell[j].sum,則進(jìn)行兩個數(shù)據(jù)的交換,實現(xiàn)金額從大到小進(jìn)行排序?!敬鸢浮縱oid DescSort(){ int i, j。 PRO temp。 for (i=0。 i99。 i++) for (j=i+1。 j100。 j++) if (strcmp(sell[i].code, sell[j].code) 0) { temp = sell[i]。 sell[i] = sell[j]。 sell[j] = temp。 } else if (strcmp(sell[i].code, sell[j].code) == 0) { if (sell[i].sum sell[j].sum) { temp = sell[i]。 sell[i] = sell[j]。 sell[j] = temp。 } }}容錯分析:數(shù)組sell[i]中兩個數(shù)的位置交換要借助中間變量temp。(),存入到字符串?dāng)?shù)組str中;請編寫encryptChar()函數(shù),其功能是:按給定的替代關(guān)系對數(shù)組str中的所有字符進(jìn)行替代,仍存入數(shù)組str對應(yīng)的位置上,最后調(diào)用函數(shù)WData()。替代關(guān)系:f(p)=p*11 mod 256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果計算后f(p)值小于1等于32或大于130,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。注意:部分程序已給出。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)RData()和輸出數(shù)據(jù)函數(shù)WData()的內(nèi)容。include include include include unsigned char str[50][80]。int maxline = 0。 /* 文章的總行數(shù)
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1