《演算法筆記》學習筆記 3 2查詢

2021-09-29 07:31:19 字數 3621 閱讀 8238

本節目錄

題目描述

思路: 因為需要用試機座位號碼來查詢考生座位號,所以用結構體陣列,試機座位號作為下標,存放相應輸入資料在結構體中的位置,當查詢時,直接將輸入的試機座位號作為下標就可以查詢到其在結構體陣列中的下標,**如下所示

#

include

#include

struct

tnumber

tnum[

1010];

int search[

1010];

intmain()

scanf

("%d"

,&m)

;//查詢個數

while

(m--

)return0;

}

題目描述

用結構體陣列來存放待輸入的資料,為了得到分數最高和最低的兩個學生的資料,可以設定變數max和min分別存放最高分和最低分資料在陣列中的位置,當有更高的或者更低的分出現的話,便更新變數max或min的值,具體實現如下所示

#

include

#include

struct

student

stu[

1010];

intmain()

if(stu[i]

.score .score)

i++;}

printf

("%s %s\n"

,stu[max]

.name,stu[max]

.number)

;// 分別輸出最高分和最低分的姓名和學號

printf

("%s %s\n"

,stu[min]

.name,stu[min]

.number)

;return0;

}

題目描述

建立乙個結構體來接收資料,設定變數temp用來每次接收臨時的資料,因為生日具有有效日期,可以設計兩個邊界變數left和right,同時設定oldest和young來存放最年老和最年輕的居民的資訊。每次接收資料後判斷是否在邊界範圍內,再將其分別與年輕與老人對比,若更年輕或更老,就更新young後oldest中的資料。對比方法為,大致的計算出每個合法生日到兩百年前第一天的天數,若小,則年老一點,否則年輕。

#

include

struct

people

temp,oldest,young,left,right;

// 臨時接收資料變數,年老和年輕變數及兩個邊界量

void

init()

intmain()

if(temp.sum>young.sum)}}

if(num!=0)

else

printf

("0\n");

// 否則輸出零

return0;

}

題目描述

按照題意模擬即可,**如下所示

#

include

#include

#define

n100001

intmain()

}printf

("%d %d"

,maxi,a[maxi]);

//輸出,學校下標和學校總分數

return0;

}

題目描述

因為最終要輸出每一組資料中投的是贏,輸,還是平局的符號,並且每一組都需要記錄最高的賠率,故每一次輸入一組資料時,都記錄其中最大的賠率和其符號,所以可以將每一組的最大資料依次放在陣列裡面,其符號依次放在另外乙個字元陣列裡,最後將資料輸出,得到結果,具體實現**如下:

#

include

#include

char sign[3]

=;//標誌陣列

float temp[3]

,ends[3]

;// 臨時陣列,存放結果的陣列

char end[3]

;// 存放結果標誌的陣列

intmain()

} ends[i]

= temp[index]

;// 儲存一組數中最大的數

end[i]

= sign[index]

;// 儲存,最大數的符號

} sum =

(ends[0]

*ends[1]

*ends[2]

*0.65-1

)*2;

// 計算最終的收益

for(

int i=

0;i<

3;i++

)printf

("%.2f\n"

,sum)

;return0;

}

題目描述

最終要輸出,最先進和最後進的人的名字,所以要儲存最先進和最後出的名字,可以設定乙個臨時變數,最先進入和最後出去變數,最開始將最先進入和最後進入的時間都設定為最大和最小,每次輸入資料時都進行比較,若小於(大於)最先進入(最後出去)的變數,就將相應的變數更新,最後輸出兩個變數。

#

include

#include

struct

word

temp,first,last;

// 最先進和最後出去的

void

init()

intmain()

if(strcmp

(last.outtime,temp.outtime)

<0)

}printf

("%s %s\n"

,first.name,last.name)

;// 輸出資料

return0;

}

題目描述

結果要輸出分數最高的女生,和分數最低的男生並且要輸出二者的分數差(男生好難啊,學渣的痛苦,考的不高就算了,還有和女生最高分算差值),用結構體來表示每個學生的資訊,設定三個量分別用來儲存臨時輸入的資料,女生最高分,男生最低分的資料。每次輸入的時候進行比較,若滿足條件就更新女高或男低的量。當男生女生有乙個為零的時候對應輸出的地方輸出absent 同時原來輸出分數差的那一行輸出na,所以分別設定mnum,funm,統計男女的人數,最後輸出的時候作為判斷,具體**如下:

#

include

struct

student

temp,hfm,lm;

//臨時變數,分數最高女生,和分數最低男生

void

init()

intmain()

}else

if(temp.gender ==

'm')}}

if(fnum!=0)

else

printf

("absent\n");

if(mnum !=0)

else

printf

("absent\n");

if(fnum && mnum)

else

printf

("na\n");

return0;

}

演算法筆記3 2E 學生查詢

輸入n個學生的資訊,每行包括學號 姓名 性別和年齡,每乙個屬性使用空格分開。最後再輸入一學號,將該學號對應的學生資訊輸出。測試資料有多組,第一行為樣例數m。對於每個樣例,第一行為學生人數n n不超過20 加下來n行每行4個整數分別表示學號 姓名 性別和年齡,最後一行表示查詢的學號。輸出m行,每行表示...

學習筆記32

今天繼續對第十二章進行學習 首先用 開啟檔案並取得工作表 對資料結構進行填充 最後將結果寫入檔案即可。首先需要呼叫openpyxl.workbook 函式。利用create sheet and remove sheet 方法可以在工作簿中新增或者刪除工作表。最後將值寫入單元格即可。此專案的思路是 1...

筆記 查詢演算法

int sequencesearch int a,int value,int n int i for i 0 i迴圈版本 int binarysearch1 int a,int value,int n int low,high,mid low 0 high n 1 while low high mi...