本文目錄一覽:
- 1、c語言 學生成績排名
- 2、c語言中排名怎麼搞
- 3、編程語言排名2021
- 4、用C語言計算加權分數
- 5、C語言學生成績排名
c語言 學生成績排名
#includestdio.h
void setList(int *a,int len);
void printfList(int *a,int len);
void pxList(int *a,int len);
void insertList(int *a,int len);
void fanList(int *a,int len);
int main()
{
int a[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);
return 0;
}
void setList(int *a,int len)//輸入
{
int i;
printf(“請輸入%d個學生成績\n”,len);
for(i=0;ilen;i++)
scanf(“%d”,a[i]);
}
void printfList(int *a,int len)//打印數組
{
int i;
printf(“\n—打印數組—\n”);
for(i=0;ilen;i++)
printf(“%d “,a[i]);
}
void pxList(int *a,int len)// 選擇排序
{
int i,j;
printf(“\n—從大到小排序—\n”);
for(i=0;ilen-1;i++)
for(j=i+1;jlen;j++)
if(a[i]a[j])
{
a[j]^=a[i];
a[i]^=a[j];
a[j]^=a[i];
}
}
void insertList(int *a,int len)//插入數組
{
printf(“\n—插入數組—\n”);
printf(“輸入要插入的數:”);
scanf(“%d”,a[len]);
pxList(a,11);
}
void fanList(int *a,int len)//數組反向存儲
{
int *p0,*p1;
p0=a;
p1=a[len-1];
while(p0p1)
{
*p0^=*p1;
*p1^=*p0;
*p0^=*p1;
p0++;
p1–;
}
}
c語言中排名怎麼搞
C語言用struct實現,把信息包含在同一個struct裡面就可以了,每個struct對應一個學生。然後你建立一個N維struct數組即可。
或者C++用類實現。
再普通一些,用鏈表,把所有數據通過指針項定位進行綁定。
編程語言排名2021
近日, TIOBE 編程社區揭曉了2021年2月各大編程語言的排行情況,C語言繼續霸榜第一名,第二名則是Java,Python位居第三。
從排行來看,前10名編程語言和上個月沒有太大變化,排在前列的依舊是C、Java、Python、C++、C#。
第 9 和第 10 並不像排名前 8 的位置那麼固定。在過去的 12 個月中,這 2 個位置分別由 SQL ,彙編語言(Assembly language) ,R 語言 ,Groovy ,Go 語言 和 Swift 佔據。
用C語言計算加權分數
本人(無界)用C-Free親手編寫的,親測可運行
# include stdio.h
struct stu{ //用結構體數組儲存學生的成績和學分
float score; //成績
float credit; //學分
}Stu[100];
int main()
{
unsigned int x=1,y=0;
//y用於結構體數組Stu,同時用於循環計算該學生成績
double sxcsum=0,csum=0,sum;
//sxcsum記錄所有成績乘以學分之和
//csum學分之和
//sum加權成績
printf(“提示:輸入完後按回車鍵結束,輸入負數代表學生成績輸入完成\n”);
while(1) //循環用戶輸入成績,直到用戶輸入完成後結束
{
printf(“請輸入第%d門課程的成績:”,x);
scanf(“%f”,Stu[y].score);
getchar(); //吸收回車鍵字符
if(Stu[y].score0) break; //輸入負數結束循環,結束學生輸入成績操作
printf(“請輸入第%d門課程的學分:”,x++);
scanf(“%f”,Stu[y++].credit);
getchar();
if(Stu[y-1].credit0) break;
}
printf(“—輸入成績結束—\n”);
for(x=0;xy;x++) //循環計算成績,直到算完所有課程 ,y變量儲存共有多少門課程
{
sxcsum+=Stu[x].score*Stu[x].credit;
csum+=Stu[x].credit;
}
sum=sxcsum/csum;
printf(“該學生的加權成績為:%g\n”,sum);
return(0);
}
—“無界”回答—
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;i5;i++)
{
for(j=0;j4-i;j++)
{
if(student[j].totalstudent[j+1].total)
{
//temp也是結構體,交換
temp = student[j];
student[j] = student[j+1];
student[j+1] = temp;
}
}
student[j].rank = i+1;
}
也可以用結構體指針,不需要每次交換,只需要標記下最大值,然後賦予名次~
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/245090.html