『壹』 c語言 學生成績排序 按學生的序號輸入 n 名學生的成績,按照分數由高到低的順序輸出學生的名次、序號和成績
#include<stdio.h>
#include<malloc.h>
typedefstructstudent
{
intid;
intscore;
structstudent*next;
}STU;
intstuIndex;
voidinputStuInfo(STU*stuHead);//輸入學生信息
voidorderStuInfo(STU*stuHead);//按照分數高到低順序重組鏈表
voidprintStuInfo(STU*stuHead,intflag);//列印學生信息。參數flag=0:正常列印鏈表信息。flag!=0:列印排序後的名次信息
intmain()
{
STU*stuHead=(STU*)malloc(sizeof(STU));
stuHead->next=NULL;
stuIndex=1;
inputStuInfo(stuHead);
printf("--列印原始輸入的鏈表!--
");
printStuInfo(stuHead,0);
printf("--開始按分數降序排列!--
");
orderStuInfo(stuHead);
printf("--鏈表按降序重組完成!--
");
printf("--列印降序排序的鏈表!--
");
printStuInfo(stuHead,1);
return0;
}
voidorderStuInfo(STU*stuHead)
{
STU*stuSave1=NULL,*stuSave2=NULL,stuSave3;
stuSave1=stuHead;
while(stuSave1->next!=NULL)//冒泡排序
{
stuSave2=stuSave1->next;
while(stuSave2->next!=NULL)
{
if(stuSave1->next->score<stuSave2->next->score)//交換成員值,保留原鏈表指針值
{
stuSave3=*(stuSave1->next);
stuSave1->next->id=stuSave2->next->id;
stuSave1->next->score=stuSave2->next->score;
stuSave2->next->id=stuSave3.id;
stuSave2->next->score=stuSave3.score;
}
stuSave2=stuSave2->next;
}
stuSave1=stuSave1->next;
}
}
voidprintStuInfo(STU*stuHead,intflag)
{
inti=1;
while(stuHead->next!=NULL)
{
if(flag==0)
printf("學生%d,成績%d
",stuHead->next->id,stuHead->next->score);
else
printf("第%d名,學生%d,成績%d
",i++,stuHead->next->id,stuHead->next->score);
stuHead=stuHead->next;
}
}
voidinputStuInfo(STU*stuHead)
{
intscore;
STU*stuNew=NULL,*stuTail=NULL;
while(1)
{
printf("輸入學生%d的成績:(輸入負數結束輸入)",stuIndex);
scanf("%d",&score);
if(score<0)
break;
stuNew=(STU*)malloc(sizeof(STU));
stuNew->score=score;
stuNew->id=stuIndex;
stuNew->next=NULL;
if(stuHead->next==NULL)
stuHead->next=stuNew;
else
stuTail->next=stuNew;
stuTail=stuNew;
stuIndex++;
}
}
『貳』 C語言利用數組實現輸入N名學生成績,有小到大進行排序,並計算平均分
這應該能滿足要求了:
#include <stdio.h>
void Sort(float* arr, int len) {
double temp;
int i , j;
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
float AvgGrade(float* arr,int len) {
int i = 0;
double result = 0;
for (; i < len; i++) {
result += arr[i];
}
return result;
}
int main() {
float arr[100], temp = 0;
int n, i;
n = 0;
printf("輸入學生的成績,可以連續輸入,直到輸入一個小於0的數:\n");
scanf("%f", &temp);
while (temp >= 0) {
arr[n++] = temp;
scanf("%f", &temp);
}
printf("平均分為%f\n", AvgGrade(arr, n));
printf("排序後的分數為:\n");
Sort(arr, n);
for (i = 0; i < n; i++) {
printf("%f\t",arr[i]);
if ((i + 1) % 5 == 0)
printf("\n");
}
return 0;
}
『叄』 c語言 輸入n個同學的某門課程成績編寫函數計算平均分 用 while 循環
int n,s,sum;
scanf("%d",&n);//n位同學
while(n--){
scanf("%d",&s);//輸入同學的成績
sum+=s;//n位同學的成績總和
}
double x=(double)sum/n; //平均分,強制轉換為浮點數
printf("%.2f", x); //保留兩位小數
『肆』 C語言:輸入一個正整數n,再輸入n個學生的百分製成績,統計各等級成績的個數。
#include <stdio.h>
int main(int argc, char *argv[])
{
int count,i,sum=0,avg;
int score[20];
int count_A=0,count_B=0,count_C=0,count_D=0,count_E=0;
printf("你要輸入幾個學生的成績:");
scanf("%d",&count);
printf("請輸入%d個學生的成績 ",count);
for(i=0;i<count;i++){
scanf("%d",&score[i]);
}
for(i=0;i<count;i++){
sum+=score[i];
}
avg=sum/count;
for(i=0;i<count;i++){
if(score[i]<=100&score[i]>=90) count_A++;
else if(score[i]<90&score[i]>=80) count_B++;
else if(score[i]<80&score[i]>=70) count_C++;
else if(score[i]<70&score[i]>=60) count_D++;
else if(score[i]<600&score[i]>=0) count_E++;
else {}
}
printf("A等的成績個數有:%d個 ",count_A);
printf("B等的成績個數有:%d個 ",count_B);
printf("C等的成績個數有:%d個 ",count_C);
printf("D等的成績個數有:%d個 ",count_D);
printf("E等的成績個數有:%d個 ",count_E);
getch();
}
這本書被 C語言開發者們稱為K&R,很多年來被當作 C語言的非正式的標准說明。人們稱這個版本的 C語言為K&R C。
(4)用c語言錄入n名學生的成績擴展閱讀
起初,C語言沒有官方標准。1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。布萊恩·柯林漢(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本書,名叫《The C Programming Language》。
K&R C主要介紹了以下特色:
結構體(struct)類型
長整數(long int)類型
無符號整數(unsigned int)類型
把運算符=+和=-改為+=和-=。因為=+和=-會使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產生混淆。
即使在後來ANSI C標准被提出的許多年後,K&R C仍然是許多編譯器的最 准要求,許多老舊的編譯器仍然運行K&R C的標准。
『伍』 C語言。輸入n個學生的姓名,語文,數學,英語成績,
#include <stdio.h>
float average;
}stu[N],temp;
void main()
printf("請依次輸入%d個學生的姓名、語文成績、數學成績、英語成績: ",N);
scanf("%s%d%d%d",&stu[i].name,&stu[i].yuwen,&stu[i].shuxue,&stu[i].yingyu);
stu[i].average=(stu[i].yuwen+stu[i].shuxue+stu[i].yingyu)/3.0;
printf(" 姓名 語文 數學 英語 平均分 ");
for(i=0;i<N;i++)
簡介
C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。