導航:首頁 > 保研推免 > 字元數組誰拿了最多獎學金

字元數組誰拿了最多獎學金

發布時間:2020-12-06 14:20:32

㈠ ·[PASCAL]誰拿了最多獎學金

本題題目有點長..
基本思路:首先用ansistring讀入每一行並作處理,可先用pos函數找到空格然後將1~pos的值-1截下作為名字nn,接下來2個分數都是將前面空格前的刪掉繼續用pos找空格,然後對空格前的字元串長度作處理,並將分數記為n1、n2,再接下來同樣處理得出n3、n4、n5,然後就按照題目要求計算出當前人的獎學金s,然後與之前最大值max比較,若比max大那麼就將max:=s同時將該同學名字nn存如maxn中,並將s加到總和sum中,最後就可以按要求輸出max,maxn,sum了.
這道題很早做的..已經忘了很多,程序太長不好找錯..只能講講思路了.
附我以前做的程序,略有些復雜,可優化(與上述變數無關):
var a,b,c,l,i,j,n,sum,max,s,ss:longint;nn,n1,n2,n3,n4,n5:ansistring;
begin
readln(n);
sum:=0;
max:=0;//初始化
for i:=1 to n do begin
s:=0;//還是初始化
readln(n4);
l:=length(n4);
n1:='';//仍然是初始化,我是讀一行做一行..
for j:=1 to l do
if n4[j]<>' ' then n1:=n1+n4[j] else begin ss:=j;break;end;//找名字,用pos看上去會清楚點..
n5:='';
for j:=ss+1 to l do
if n4[j]<>' ' then n5:=n5+n4[j] else begin ss:=j;break;end;
if length(n5)=1 then a:=ord(n5[1])-ord('0') else
if length(n5)=2 then a:=(ord(n5[1])-ord('0'))*10+ord(n5[2])-ord('0') else
if length(n5)=3 then a:=100;//對分數的字元長度判斷並得出分數
n5:='';
for j:=ss+1 to l do
if n4[j]<>' ' then n5:=n5+n4[j] else begin ss:=j;break;end;
if length(n5)=1 then b:=ord(n5[1])-ord('0') else
if length(n5)=2 then b:=(ord(n5[1])-ord('0'))*10+ord(n5[2])-ord('0') else
if length(n5)=3 then b:=100;//對第二個分數的處理,同上
n2:='';
n3:='';
n2:=n4[ss+1];
n3:=n4[ss+3];//接下來2個Y或N
ss:=ss+4;
n5:='';
for j:=ss+1 to l do
if n4[j]<>' ' then n5:=n5+n4[j];
if length(n5)=1 then c:=ord(n5[1])-ord('0') else
if length(n5)=2 then c:=(ord(n5[1])-ord('0'))*10+ord(n5[2])-ord('0');//求論文數
if (a>80) and (c>=1) then s:=s+8000;
if (a>85) and (b>80) then s:=s+4000;
if a>90 then s:=s+2000;
if (a>85) and (n3='Y') then s:=s+1000;
if (b>80) and (n2='Y') then s:=s+850;
sum:=sum+s;
if s>max then begin max:=s;nn:=n1;end;
end;//按照題目要求做
writeln(nn);
writeln(max);
writeln(sum);//輸出答案
end.

㈡ c語言 誰拿了最多獎學金

1 #include <iostream>
2 using namespace std;
3 struct Stu{
4
char name[20];
5
int west;
6
int qimo;//��ĩ
7
int bj;//
8
int gb; //
9
int art; //����
10
int mo;
11 };
12 Stu stu[130];
13 int n;
14 long long money=0;
15 int main()
16 {
17
freopen("scholar.in","r",stdin);
18
freopen("scholar.out","w",stdout);
19
memset(stu,0,sizeof(stu));
20
cin >> n;
21
for(int i=1;i<=n;i++){
22
char a,b;
23
cin >> stu[i].name >> stu[i].qimo >> stu[i].bj >> a >> b >> stu[i].art;
24
if (a=='Y')stu[i].gb=1;
25
if (b=='Y')stu[i].west=1;
26
}
27
int bigm=0,jn;
28
for(int i=1;i<=n;i++){
29
if (stu[i].qimo>80 && stu[i].art)stu[i].mo+=8000;
30
if (stu[i].qimo>85 && stu[i].bj>80)stu[i].mo+=4000;
31
if (stu[i].qimo>90) stu[i].mo+=2000;
32
if (stu[i].qimo>85 && stu[i].west)stu[i].mo+=1000;
33
if (stu[i].bj>80 && stu[i].gb)stu[i].mo+=850;
34
money+=stu[i].mo;
35
if (stu[i].mo>bigm)bigm=stu[i].mo,jn=i;
36
}
37
cout << stu[jn].name << endl;
38
cout << bigm << endl;
39
cout << money << endl;
40
41
return 0;
42 }
43

㈢ C語言解答"誰拿了最多的獎學金"

#include <stdio.h>
int main()
{
int i,G1[10],G2[10],n[10],sum[10],S1,S2,N;
char name[10],Y[10],X[10];
for(i=1;i<=N;i++)
{
scanf("%s %d %d %c %c %d\n",&name[i],&G1[i],&G2[i],&Y[i],&X[i],&n[i]);
if(G1[i]>80,n[i]>=1)
sum[i]=sum[i]+8000;
if(G1[i]>85,G2[i]>80)
sum[i]=sum[i]+4000;
if(G1[i]>90)
sum[i]=sum[i]+2000;
if(G1[i]>85,X[i]='Y')
sum[i]=sum[i]+1000;
if(G2[i]>80,Y[i]='Y')
sum[i]=sum[i]+850;
}
for(i=1;i<=N;i++)
{
if(sum[i]>=sum[i+1])
S1=sum[i];
if(sum[i]=S1)
S2=S1+sum[i];
}
printf("%s\n,%d\n,%d",name[i],S1,S2);
return 0;
}

㈣ c++誰拿了最多的獎學金

#include <string>
#include <iostream>
using namespace std;

string stu_name[100];
int stu_num[100];

int main()
{
int n;cin>>n;
memset(stu_name,0,sizeof stu_name);
memset(stu_num,0,sizeof stu_num);
for (int i=0;i<n;i++)
{
int sc1,sc2;
char fl1,fl2;
int c;
cin>>stu_name[i];
cin>>sc1>>sc2>>fl1>>fl2>>c;
if (sc1>80&&c)
stu_num[i] += 8000;
if (sc1>85&&sc2>80)
stu_num[i] += 4000;
if (sc1>90)
stu_num[i] += 2000;
if (sc1>85&&fl2=='Y')
stu_num[i] += 1000;
if (sc2>80&&fl1=='Y')
stu_num[i] += 850;
}
int max_index = 0;
int max_num = 0;
for (int i=0;i<n;i++)
{
if (stu_num[i]>stu_num[max_index])
max_index = i;
max_num += stu_num[i];

}
cout<<stu_name[max_index]<<endl<<stu_num[max_index]<<endl<<max_num<<endl;
return 0;
}

㈤ C 語言 誰拿了最多的獎學金

沒有錯啊!

㈥ "誰拿了最多獎學金" C程序求助,在線等答案

這是我寫的C++代碼
希望能被採納,謝謝
你的這題目是NOIP的吧
我做過,現在我學NOI了

#include <iostream>
#define FOR(i,a,b) for(i=a;i<b;i++)
using namespace std;

struct Student
{
char name[21];
int m1,m2;
char c1,c2;
int p,total;
};

int main( void )
{
int n,i,totals(0),max(0);
cin >> n;
struct Student* team = new Student[n],* tmax ;
FOR(i,0,n) {
cin >> team[i].name
>> team[i].m1 >> team[i].m2
>> team[i].c1 >> team[i].c2
>> team[i].p;
team[i].total = 0;
}
FOR(i,0,n) {
if (team[i].m1 > 80 && team[i].p > 0) team[i].total += 800;
if (team[i].m1 > 85 && team[i].m2 > 80) team[i].total += 400;
if (team[i].m1 > 90) team[i].total += 200;
if (team[i].m1 > 85 && team[i].c2 == 'Y') team[i].total += 100;
if (team[i].m2 > 80 && team[i].c1 == 'Y') team[i].total += 85;
totals += team[i].total;
}
max = team[0].total; tmax = &team[0];
FOR(i,1,n) if (team[i].total > max)
{max = team[i].total ; tmax = &team[i]; }
cout << tmax -> name << endl
<< tmax -> total << '0' << endl
<< totals << '0' << endl;
totals = max = 0;
delete [] team;
}

㈦ tyvj的誰拿了最多獎學金問題;C語言;求更正

awa函數裡面用的全復部制是大於號,對於80分那麼得到的獎學金就是0了
看起來好像每次都要比n多輸入一個學生的數據,雖然最後一個p1沒有加到鏈表中
提個小建議啊,malloc的內存都沒有釋放,特別是最後p1所指的內存基本就是丟失了(因為對於n個學生每次都分配n+1個節點的內存)

㈧ pasacal 誰拿了最多獎學金 求救

repeat k:=k+1;read(p[k]);xingming[i]:=xingming[i]+p[k]; until(p[k]=' ');
read(a1[i]);read(a2[i]); For j:=1 to 4 do read(q[j]);
s1[i]:=q[2];s2[i]:=q[4];read(a3[i]);readln; end;
For i:=1 to n do

㈨ C語言 誰拿了最多的獎學金 高手看看哪錯了。

首先,memset(jxj,0,sizeof(jxj));這個東西,你自己看看,是個什麼東西呢?我看了半天實在回沒有搞明白。說他是函答數聲明吧,沒有參數類型,也不應該放在這;說他是函數調用吧,沒看到函數定義部分,說他是函數定義吧,那就沒有了該函數調用的代碼,更不應該在其後加分號。難道是系統函數?
再就是,那個gb和xb,我看你是定義成字元型二維數組吧,怎麼在下面的用法中出現了和單個字元的比較啊?gb[i]是一維的,內容是字元串,比較要用strcmp(str1,str2)函數的,是和字元串比較,不是單個字元。gb[i][j]才是一個字元。最後,你輸入的n,有可能越界的啊,要注意。

㈩ C語言結構基礎誰拿了最多的獎學金

#include <stdio.h>
struct student{
char name[21];
int qtest,btest;
char gb,xb;
int lw;
int total;
};
int main(void)
{
int n,i,maxtotal=0;
struct student s[100],smax;

scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s",s[i].name);
scanf("%d%d",&s[i].qtest,&s[i].btest);
getchar();
s[i].gb=getchar();
getchar();
s[i].xb=getchar();
scanf("%d",&s[i].lw);
s[i].total=0;
}

for(i=0;i<n;i++){
if(s[i].qtest>80&&s[i].lw>=1) s[i].total+=8000;
if(s[i].qtest>85&&s[i].btest>80) s[i].total+=4000;
if(s[i].qtest>90) s[i].total+=2000;
if(s[i].qtest>85&&s[i].xb=='Y') s[i].total+=1000;
if(s[i].btest>80&&s[i].gb=='Y') s[i].total+=850;
}

maxtotal=s[0].total;
smax=s[0];
for(i=1;i<n;i++){
maxtotal+=s[i].total;
}

for(i=0;i<n;i++){
if(smax.total<s[i].total) smax=s[i];
}

printf("%s\n",smax.name);
printf("%d\n",smax.total);
printf("%d\n",maxtotal);
return 0;
}

閱讀全文

與字元數組誰拿了最多獎學金相關的資料

熱點內容
20132014南開大學國家獎學金名單 瀏覽:560
專升本考生考研復試 瀏覽:354
研究生給導師寫自薦信被婉拒了怎麼回復 瀏覽:470
2020中科大非全日制分數 瀏覽:747
江西非全日制研究生 瀏覽:1
2016全日制自考學校 瀏覽:86
考研廣播電視學分數線 瀏覽:465
研究生什麼年齡能考試 瀏覽:580
中科院大學研究生考試培訓 瀏覽:43
全日制大專免考免試入學 瀏覽:943
考研在學校租房子 瀏覽:543
上海全日制專升本報名 瀏覽:924
事業單位必須是全日制學歷嗎 瀏覽:233
出國讀研澳洲 瀏覽:340
金融研究生考英語考試 瀏覽:43
雲南大學研究生比較好的專業 瀏覽:32
本科生考在職研究生報考時間 瀏覽:173
密碼學專業考研科目 瀏覽:996
工程學院針對的考研的學校有哪些 瀏覽:982
研究生考試366分 瀏覽:123