㈠ 如何用c語言編寫錄入成績和排行
先輸入到一個數組內,然後再排序就行了,具體的知道吧?
㈡ c語言排行榜怎麼編
結構體數組名字+名次不就對了么。顯示的時候按名次顯示用循環來實現。
㈢ c語言中排名怎麼搞
C語言用struct實現,把信息包含在同一個struct裡面就可以了,每個struct對應一個學生。然後你建立一個N維struct數組即可。
或者C++用類實現。
再普通一些,用鏈表,把所有數據通過指針項定位進行綁定。
㈣ C語言如何實現用戶注冊登錄注銷,用戶簽到功能
用資料庫實現,可以用MySQL,PostgreSQL,如果數據多一點用Oracle,簽到功能在資料庫中記錄,加密密碼用加密方法可以用異或加密。
㈤ C語言學生成績排名
舉個例子,學生的成績依次為:7,5,6,3,8,排名初始化為1,2,3,4,5
根據你的程序:
經過第一次循環,即i=0;j=0時,程序排序依舊為7,5,6,3,8;排名為:1,3,2,5,4
如果在往下循環執行,第五名同學的最高成績「8」分,將永遠處於第4名;
所以,有錯誤。。。
修改建議:
可以參考排序,每次循環總能得到一個最大值,將此最大值所在結構體的排名rank賦值:
大概如下:
for(i=0;i<5;i++)
{
for(j=0;j<4-i;j++)
{
if(student[j].total>student[j+1].total)
{
//temp也是結構體,交換
temp = student[j];
student[j] = student[j+1];
student[j+1] = temp;
}
}
student[j].rank = i+1;
}
也可以用結構體指針,不需要每次交換,只需要標記下最大值,然後賦予名次~
㈥ c語言成績排名(詳細點)
# include<stdio.h>
main()
{
int a[70],i,j,n;//a[70]保存成績,i,j控制循環變數,n學生數量
printf("請輸入學生最大數量(<=70)");
scanf("%d",&n);
printf("請輸入學生成績以-1結束");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]==-1)
{
break;
}//如果輸入數為-1 跳出
}//成績輸入完畢
int max,temp;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(a[j]>a[i])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}//快速排序完成
printf("成績由搞到低為\n");
for(i=0;i<n-1;i++)
{
printf("%d ",a[i]);
}
return 0;
}
㈦ C語言 如何更新高手榜排名順序送10分~
首先你的代碼裡面有個問題
就是這個位置:
if(ch=='Y'||ch=='y')
{
printf("你選擇了記錄成績。\n請輸入你的名字:\n");
scanf("%s",&name);
fp=fopen("d:\\cha.txt","a");
if(fp==NULL)
{
printf("抱歉,系統錯誤,成績無法記錄");
exit(0);
}
這里name本身就是數組名,輸入的時候前面不應該再有地址符號。
其次你說的排名問題,我建議你用結構體數組來做,就是把在游戲中用到的變數:姓名,時間,次數,總分都放到結構體中去,然後用總分來排序...我剛學C語言,沒有接觸過時間函數,所以沒有能力給你改,還是自己嘗試一下吧
㈧ c語言 學生成績排名
#include<stdio.h>
voidsetList(int*a,intlen);
voidprintfList(int*a,intlen);
voidpxList(int*a,intlen);
voidinsertList(int*a,intlen);
voidfanList(int*a,intlen);
intmain()
{
inta[11];//1.定義一個數組a[11],用以存放學生的成績。
setList(a,10);//2.從鍵盤輸入10個學生成績。
pxList(a,10);//3.採用選擇法,將學生成績按照從高到低進行排序。
printfList(a,10);
insertList(a,10);//4.再輸入一個學生的成績,將此成績按照排序規律插入原學生成績數組。
printfList(a,11);
fanList(a,11);//5.將排好序的成績單進行反序存放,即原來是從高到低,現在改為從低到高排列
printfList(a,11);
return0;
}
voidsetList(int*a,intlen)//輸入
{
inti;
printf("請輸入%d個學生成績
",len);
for(i=0;i<len;i++)
scanf("%d",&a[i]);
}
voidprintfList(int*a,intlen)//列印數組
{
inti;
printf("
---列印數組---
");
for(i=0;i<len;i++)
printf("%d",a[i]);
}
voidpxList(int*a,intlen)//選擇排序
{
inti,j;
printf("
---從大到小排序---
");
for(i=0;i<len-1;i++)
for(j=i+1;j<len;j++)
if(a[i]<a[j])
{
a[j]^=a[i];
a[i]^=a[j];
a[j]^=a[i];
}
}
voidinsertList(int*a,intlen)//插入數組
{
printf("
---插入數組---
");
printf("輸入要插入的數:");
scanf("%d",&a[len]);
pxList(a,11);
}
voidfanList(int*a,intlen)//數組反向存儲
{
int*p0,*p1;
p0=a;
p1=&a[len-1];
while(p0<p1)
{
*p0^=*p1;
*p1^=*p0;
*p0^=*p1;
p0++;
p1--;
}
}
㈨ 成績排行系統C語言
#include<stdio.h>
#definen20
intmain()
{
charname[n],c;
inti,j,t,score[n];
c='a';
for(i=0;i<n;i++)//初始化姓名
{
name[i]=c++;
}
for(i=0;i<n;i++)//輸入從a到…t對應的成績
scanf("%d",&score[i]);
for(i=0;i<n-1;i++)//升序排列
{
for(j=i;j<n-1-i;j++)
{
if(score[j+1]<score[j])//注意,成績與姓名要同時改變
{
t=score[j+1];
score[j+1]=score[j];
score[j]=t;
c=name[j+1];
name[j+1]=name[j];
name[j]=c;
}
}
}
for(i=n-1,j=1;i>=n-6;i--,j++)
printf("姓名為:%c的成績為:%d,排名第%d名 ",name[i],score[i],j);
return0;
}
這是經過調試成功的代碼,希望採納。
㈩ c語言中rank函數怎麼用
c語言中rank函數是自定義的函數吧?如果是的話,怎麼用,還必須看這個函數是怎麼定義的了。