當前位置:首頁 » 編程語言 » c語言輸入學生名字並排序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言輸入學生名字並排序

發布時間: 2022-05-10 18:39:04

1. c語言 編寫一個程序,輸入10位同學的姓名和成績,並按學生成績從高到低排序。

#include<stdio.h>
#include<string.h>
#defineN10
structstudent
{
charname[20];
intscore;
};
voidmain()
{
structstudentstu[N];
structstudent*p;
inti,v,s,temp;
chartempname1[20],tempname2[20];
for(i=0;i<N;i++)
{
printf("pleaseinput%dstudentname ",i+1);
scanf("%s",stu[i].name);
printf("pleaseinputthisstudentscore ");
scanf("%d",&stu[i].score);
}
for(i=0;i<N-1;i++)
{
for(v=i+1;v<N;v++)
{
if(stu[i].score<stu[v].score)
{
temp=stu[i].score;
stu[i].score=stu[v].score;
stu[v].score=temp;
strcpy(tempname1,stu[i].name);
strcpy(tempname2,stu[v].name);
for(s=0;s<20;s++)
{
stu[i].name[s]='';
stu[v].name[s]='';
}
strcpy(stu[i].name,tempname2);
strcpy(stu[v].name,tempname1);
for(s=0;s<20;s++)
{
tempname1[s]='';
tempname2[s]='';
}
}
}
}
printf("namescore ");
for(p=stu;p<stu+N;p++)
printf("%s%d ",p->name,p->score);
}

2. c語言中輸入5個學生的姓名及三門課的成績對按照各自總分高低進行排序

摘要 #include

3. C語言編程實現:輸入10個學生的名字(不超過20個字元),按名字降序排序輸出

//參考:

#include<string.h>
#include<stdio.h>

intmain()
{
charname[10][20],temp[20];
inti,j;
for(i=0;i<10;++i){
scanf("%s",name[i]);
}
for(i=0;i<10;++i){
for(j=i+1;j<10;++j){
if(strcmp(name[i],name[j])<0){
strcpy(temp,name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],temp);
}
}
}
for(i=0;i<10;++i){
printf("%s ",name[i]);
}
return0;
}

4. C語言,數組。用鍵盤輸入n個學生的姓名,並按字典順序排序輸出,n值由鍵盤輸入。

#include <stdio.h>

#include<string.h>

int main ()

{int n,i,j;

char s[100][20],t[20];

scanf("%d",&n);

for(i=0;i<n;i++)

scanf("%s",s[i]);

for(i=0;i<n-1;i++)

for(j=0;j<n-1-i;j++)

if(strcmp(s[j],s[j+1])>0)

{strcpy(t,s[j]);

strcpy(s[j],s[j+1]);

strcpy(s[j+1],t);

}

printf(" After: ");

for(i=0;i<n;i++)

puts(s[i]);

return 0;

}

5. C語言輸入10個學生的姓名和學號 按照學號從小到大順序排序 姓名隨之調整

#include<stdio.h>
#include<string.h>
voidsort(inta[],charb[][11])//a為數組地址
{
inti,j,v;
chars[11];
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
v=a[i];
a[i]=a[j];
a[j]=v;
strcpy(s,b[i]);
strcpy(b[i],b[j]);
strcpy(b[j],s);
}
}
}
main()
{
inta[10],i;
charb[10][11];
for(i=0;i<=9;i++)
{scanf("%d",&a[i]);
scanf("%s",b[i]);
}
sort(a,b);
for(i=0;i<=9;i++)
{
printf("%d%s ",a[i],b[i]);
}

}

6. 【C語言】輸入學生姓名和成績排序

這種一般都是要用到結構體的,不用結構體很難講名字和成績這種數據一一對應起來。

結構體都是設置一種結構,這個結構中可以放置各個類型的數據,比如說一個人是一個結構體,那麼名字,身高,體重,性別,等等都可以作為結構體里的數據。然後用這個結構體來初始化一些人,比如說小明,你將小明的身高,體重,性別等等初始化賦值給這個結構體,就可以使用 . 這個運算符號來調用結構體里成員數據。比如說 小明.姓名 的值就是小明。

根據你的提問,具體代碼如下:

首先定義一個結構體的定義:

typedef struct Student
{
char name[20]; //名字

int grade; //成績

}

初始化各個實例:
struct Student Jack, Tom, Tim;

將各個成員賦值:
Jack.name[20] = Jack;
Jack.grade = 63;

以此類推。

排序的具體方法也不難,自己看看書吧。

使用結構體的好處就是將一組與一個事物相關的數值放在一起,統一的管理和調用。

7. c語言中輸入5個學生的信息(包括姓名,性別,電話),怎麼用sort函數將姓名按字典順序排列並輸出

#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
#define NUM 100
struct Str{char str[20];};
bool cmp(Str a,Str b)
{
return strcmp(a.str,b.str)<0;
}
int main()
{
int n;
Str str[NUM];
scanf("%d%*c",&n);//輸入人的個數
for(int i=0;i<n;i++)
gets(str[i].str);//依次輸入每個人的姓名,用回車鍵隔開
sort(str,str+n,cmp);
printf("排序後:\n");
for(int i=0;i<n;i++)
puts(str[i].str);
return 0;
}
這樣子可以嗎?

8. 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語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。

9. c語言利用指針將10個學生的姓名排序

參考下面
#include <stdio.h>
#include <string.h>
void input(char (*p)[10],int n)
{
int i; //int
for(i=0;i<n;i++)
{
printf("input第%d個姓名:",i+1);
scanf("%s",&p[i]);
printf("\n");
}
}
void output(char (*p)[10],int,n)
{
int i;
printf("排序之後為:");
for(i=0;i<n;i++)
{
printf("%s", p[i]);
printf("\n");
}
}
void sort(char (*p)[10],int n)
{
int i,j;
char t[10];//----------------
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(p[i],p[j])>0)
{

strcpy( t,p[i] );
strcpy( p[i],p[j] );
strcpy( p[j],t);
}
}
int main()
{
char s[4][10];
input(s,4);
sort(s,4);
output(s,4);
system("pause");
return 0;
}

10. c語言,輸入學生成績和名字,排序時怎麼才能讓名字跟著成績走

一開始就建兩個數組,一個放成績,一個放名字,如:
char name[100][20];
float score[100];
以後輸入、輸出、排序等等操作,都把name和score看做不可分離的一組(類似於同一個i的結構體變數),讓name[i]和score[i]成為一對!排序時,當score[k]移動到m位置時,對應的name[k]也要同時移動的m位置。
這樣,名字就跟著成績走了。