输出
查找
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define
N
50
struct
Student
{
long
number
char
name[20]
int
score
}stu[N],t
struct
Student
*p
int
Num=0
void
input()
{
char
ch
for(p=stu+Nump-stu<Np++)
{
Num++
printf("请输入第%d个学生的学号:",Num)
scanf("%ld",&p->number)
printf("请输入第%d个学生的姓名:",Num)
scanf("%s",p->name)
printf("请输入第%d个学生的成绩:",Num)
scanf("%d",&p->score)
if(Num<N)
{
printf("\n已输入%d个学生的信息,是否继续输入(y/n)?",Num)
ch=getchar()
scanf("%c",&ch)
if(ch=='n')
break
}
else
printf("已输入%d个学生的信息,不能再输入\n",N)
}
}
void
output()
{
char
ch
for(p=stup-stu<Nump++)
{
printf("学号\t\t\t姓名\t\t\t成绩\n")
printf("%-24ld%-24s%d\n",p->number,p->name,p->score)
}
printf("按回车键继续\n")
ch=getchar()
ch=getchar()
}
void
sort()
{
char
ch
int
i,j
for(i=0i<Num-1i++)
for(j=i+1j<Numj++)
{
if(stu[i].score<stu[j].score)
{
t=stu[i]
stu[i]=stu[j]
stu[j]=t
}
}
printf("已排序完毕,是否输出排序后学生信息(y/n)?")
ch=getchar()
if(ch=getchar()=='y')
output()
}
void
search()
{
char
nam[20],ch
int
k=0
fflush(stdin)
printf("请输入需要查询的学生姓名:")
gets(nam)
for(p=stup-stu<Nump++)
{
if(!strcmp(nam,p->name))
{
printf("学号\t\t\t姓名\t\t\t成绩\n")
printf("%-24ld%-24s%d\n",p->number,p->name,p->score)
k=1
}
}
if(k==0)
printf
("不存在该学生信息\n")
printf("按回车键继续\n")
ch=getchar()
}
int
menu()
{
int
choice
printf("\t\t学生信息管理系统\n")
printf("\t1.输入学生的成绩\n\t2.输出学生的成绩\n\t3.排序学生的成绩\n\t4.查找学生的成绩\n\t5.退出系统\n")
printf("\n请输入你的选择(1-5):")
scanf("%d",&choice)
return
choice
}
main()
{
while(1)
{
switch(menu())
{
case
1:input()break
case
2:output()break
case
3:sort()break
case
4:search()break
case
5:exit(0)
}
}
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//链表结点结构体声明
typedef struct subjects
{
char name[20]
float score
}sub
typedef struct student
{
int num
char name[20]
sub subject[3]
struct student* next
}stu,*pstu
#define SIZE sizeof(stu)
//函数申明
pstu LoadInfo()
void PrintMenu()
pstu AddStu(pstu )
pstu DeleStu(pstu )
pstu RwrStu(pstu )
void FindStu(pstu , char )
void Count(pstu ,char * ,float ,float )
void Rank(pstu ,char * )
void SaveQuit(pstu )
//创建菜单,进入选择循环
while(1)
{
PrintMenu()
printf("请输入您的选择编号:")
scanf("%d",&n)
getchar()
switch(n)
{
case 1:
{
system("cls")
j=0
while(4!=j)
{
printf("欢迎进入信息管理版块!\n\n")
printf("\025 1、添加学生\n")
printf("\025 2、删除学生\n")
printf("\025 3、修改学生信息\n")
printf("\025 4、返回\n")
printf("请输入您的选择编号:\n")
scanf("%d",&j)
getchar()
if ( 1 == j) head = AddStu(head)
else if( 2 == j) head = DeleStu(head)
else if( 3 == j) head = RwrStu(head)
else if( 4 == j)
else printf("输入有误,请重新输入!\n")
}
case 2:
{
//信息查询
system("cls")
printf("欢迎进入信息查询版块!\n")
printf("请输入要查询的学生编号:")
scanf("%d",&j)
getchar()
//printf("%d\n",j) //检测输入是否成功,调试程序用
FindStu(head,j) //查询并输出
printf("\n请输入回车键返回主菜单!")
getchar()
system("cls")
break
}
扩展资料:
C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。
实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
参考资料来源:百度百科-c语言
#include <stdio.h>#include <string.h>
int n
struct Student {
int no
char name[10]
int score[5]
int sum
int average
}student[100000]
void Sort(Student *s){
for(int i=0i<ni++)
for(int j=i+1j<nj++){
if(s[j].sum>s[i].sum){
char ns[100]
strcpy(ns,s[i].name)
strcpy(s[i].name,s[j].name)
strcpy(s[j].name,ns)
int snum=s[i].sum,save=s[i].average
s[i].sum=s[j].sum,s[i].average=s[j].average
s[j].sum=snum,s[j].average=save
}
}
}
void printInfo() {
for (int i = 0i <ni++) {
printf("%s,%d,%d\n", student[i].name, student[i].sum, student[i].average)
}
}
int main()
{
printf("请输入学生的数量n:")
scanf("%d",&n)
for (int i = 0i <ni++) {
printf("请分别输入第%d名同学的id,名字,成绩1,成绩2,成绩3,成绩4", i + 1)
scanf("%d%s%d%d%d%d", &student[i].no, student[i].name, &student[i].score[0], &student[i].score[1], &student[i].score[2],&student[i].score[3])
student[i].sum=student[i].score[0]+student[i].score[1]+student[i].score[2]+student[i].score[3]
student[i].average=student[i].sum/4
}
Sort(student)
printInfo()
return 0
}