❶ 用c語言編寫 輸入N位同學的姓名(姓名的長度最長的不大於19),及成績,找出第一名同學,並顯示其姓
#include <stdio.h>
#define N 3 //定義有多少名學生
struct student
{
char name[19];
double score;
}stu[N];
void main()
{
int i,first;
double max=0.0;
for(i=0;i<N;i++)
{
scanf("%s%lf",&stu[i].name,&stu[i].score);//輸入每一名學生的姓名、成績
if(stu[i].score>max)
{
max=stu[i].score;//求出最高成績
first=i;//求出成績最高的那名學生對應的索引
}
}
printf("第一名為:%s %g\n",stu[first].name,stu[first].score);
}
❷ c語言如何隨機輸出同學名字
#include <stdlib.h>
#include <time.h>
int randonNumber(){
int i,number;
srand((unsigned) time(NULL)); //用時間做種,每次產生隨機數不一樣
for (i=0; i<50; i++)
{
number = rand() % 2;
}
return number;
}
void main(){
char * name={"王強","張龜","李大爺"};
int order = randonNumber();
switch(order){
case 0:
printf("同學A=%c",name[0]);
break;
case 1:
printf("同學B=%c",name[1]);
break;
default:
printf("同學C=%c",name[2]);
break;
}
}
❸ 在c語言編程中 怎樣按名次輸出同學的姓名和學號
#include<stdio.h>
#include<malloc.h>
typedefstructstuInfo
{
intid;//學號
charname[10];//姓名
intscore;//成績
structstuInfo*next;
}STUINFO;
voidprintfStu(STUINFO*stuHead);//列印學生鏈表
voidinputInfo(STUINFO*stuHead);//輸入學生成績信息
voidorderByScore(STUINFO*stuHead);//按照成績名次排列。
intmain()
{
STUINFO*stuHead=(STUINFO*)malloc(sizeof(STUINFO));
stuHead->next=NULL;
inputInfo(stuHead);
printfStu(stuHead);
printf("按照名次排列,依次為:第一名、第二名、第三名。。。
");
orderByScore(stuHead);
printfStu(stuHead);
}
voidprintfStu(STUINFO*stuHead)
{
printf("學號姓名成績
");
while(stuHead->next!=NULL)
{
printf("%d%s%d
",stuHead->next->id,stuHead->next->name,stuHead->next->score);
stuHead=stuHead->next;
}
}
voidinputInfo(STUINFO*stuHead)
{
intid;
STUINFO*stuTail=NULL;
STUINFO*stuNew=NULL;
while(1)
{
stuNew=(STUINFO*)malloc(sizeof(STUINFO));
printf("輸入學生的學號、姓名、成績(學號輸入負數結束輸入):");
scanf("%d",&id);
if(id<0)
break;
else
stuNew->id=id;
scanf("%s%d",stuNew->name,&stuNew->score);
stuNew->next=NULL;
if(stuHead->next==NULL)
stuHead->next=stuNew;
else
stuTail->next=stuNew;
stuTail=stuNew;
}
}
voidorderByScore(STUINFO*stuHead)
{
STUINFOstuSave;
STUINFO*stuCurrent=stuHead->next;
STUINFO*stuNext=NULL;
while(stuCurrent!=NULL)//冒泡排序,鏈表節點成員值交換,鏈表指針不變
{
stuNext=stuCurrent->next;
while(stuNext!=NULL)
{
if(stuCurrent->score<stuNext->score)
{
stuSave=*stuCurrent;
*stuCurrent=*stuNext;
*stuNext=stuSave;
stuNext->next=stuCurrent->next;
stuCurrent->next=stuSave.next;
}
stuNext=stuNext->next;
}
stuCurrent=stuCurrent->next;
}
}