c语言结构体处理10个学生的成绩
㈠ c语言程序:某班有10名同学,建立学生结构体类型,包括学号,姓名,3门课程的成绩,编写程序
#include <stdio.h>
#include"string.h"
#include <stdlib.h>
#define N 100000
struct st{
char a[15];
char b[20];
int x,y,z;
};
int fun1(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
int fun2(char *x,char *y)
{
char *t;
strcpy(t,x);
strcpy(x,y);
strcpy(y,t);
}
int main() {
/*_________________________________________________*/
FILE *fp,*ok;
char b[N + 1];
//判断文件是否打开
if ( (fp = fopen("D:\操作文件1号.txt", "r")) == NULL )/*这里D:\操作文件1号.txt 是路径;读取D盘下,名为(操作文件1号)的文本文件*/
{
puts("操作文件1号读取失败!");
exit(0);
}
else
{
puts("操作文件1号读取成功");
puts("开始计算");
}
/*__________________________________________*/
struct st s[111];
char t[20],str[N];
int aver[111]={0};
for(int i=0;i<5;i++)
{
fscanf(fp,"%s%s%d%d%d",s[i].a,s[i].b,&s[i].x,&s[i].y,&s[i].z);
printf("%s %s %d %d %d ",s[i].a,s[i].b,s[i].x,s[i].y,s[i].z);
}
printf("按平均成绩排序 ");
for(int i=0;i<5;i++)
{
aver[i]=(s[i].x+s[i].y+s[i].z)*1.0/3;
}
printf(" ");
for(int i=0;i<5;i++)
{
for(int j=0;j<4-i;j++)
{
if(aver[j]<aver[j+1])
{
fun2(s[j].a,s[j+1].a);
fun2(s[j].b,s[j+1].b);
fun1(&aver[j],&aver[j+1]);
fun1(&s[j].x,&s[j+1].x);
fun1(&s[j].y,&s[j+1].y);
fun1(&s[j].z,&s[j+1].z);
}
}
}
if ( (ok = fopen("D:\操作文件2号.txt", "w")) == NULL )/*D:\操作文件2号.txt 是路径;写入D盘下,名为(操作文件2号)的文本文件*/
{
puts("操作文件2号写入失败!");
exit(0);
}
else
{
puts("操作文件2号写入成功");
}
for(int i=0;i<5;i++)
{
fprintf(ok,"第%d名;%s %s %d %d %d ",i+1,s[i].a,s[i].b,s[i].x,s[i].y,s[i].z);
printf("第%d名;%s %s %d %d %d ",i+1,s[i].a,s[i].b,s[i].x,s[i].y,s[i].z);
}
/*___________________________________________*/
//结束关闭文件
fclose(ok);
fclose(fp);
return 0;
}
我就写了5个人的,你在稍加修改就行了;
㈡ 设计一个c语言程序,实现某班10个学生程序设计期末考试成绩的管理。(结构体与共用体还未学)
假设学号和成绩是存入了二维数组中,列为学号,1……N列存放共N门课的成绩,M为学生数。
void PrtAverage(int score[][N+1],int m,int n) /*打印第n门课的平均分 */
{ int sum=0,i;
for(i=0;i<m;i++)sum+=score[i][n];
printf("平均分:%5.1f\n",(float)sum/m);
}
void Total(int score[][N+1],int m,int n,int *GoodCnt,int *BadCnt) /*统计第n门课的优秀和差生人数*/
{ int i;
*GoodCnt=*BadCnt=0;
for(i=0;i<m;i++)
{ if(score[i][n]<60) *BadCnt=*BadCnt+1;
if(score[i][n]>=90) *GoodCnt=*GoodCnt+1;
}
}
void Find(int score[][N+1],int m,int FindNo)
{ int i,j;
for(i=0;i<m;i++)
{ if(score[i][0]==FindNo)
{ printf("学号:%d\t",FindNo);
for(j=1;j<N+1;j++)
printf("第%d门课:%d分\t",j,score[i][j]);
break;
}
}
}
㈢ C语言大神快来啊,急求!!!!用结构体数组存放10个学生的信息包括姓名和两门课程的成绩,输入一个学
定义学生结构体,如下。采纳后,继续往下写
struct student
{
char name[10];
float cj1;
float cj2;
float avg;
};
㈣ C语言 编程!!!二、实验题目: 有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总,平均。
#include(stdio.h)
float score[4];
}person[10];
int i;
printf("请输入10名学生的学号、姓名、及三门成绩:");
for(i=0;i<10;i++)
printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d ",person[i]->number,person[i]->name[20],person->score[0],person->score[1],person->score[2],person->score[3]);
}
扩展资版料:
在C语言家族权程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。
不像 COBOL、Fortran 和 PL/I等编程语言,在 C 语言的工作任务里不会包含嵌入的关键字,所以几乎所有的 C 语言程序都是由标准函数库的函数来创建的。
㈤ 用C语言编写:定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩。愿哪位大神帮帮忙啦谢谢啦
要完整的写啊, 那得半小时 一个小时的.
恐怕没人有这闲工夫.
如果编程遇到问题 可以贴出来,帮你解决.
㈥ c语言:利用结构体编写:分别输入10个学生的英语 数学 编程成绩,并求和。最后用冒泡法排序,并输出。
代码如下:
#include<stdio.h>
#include<stdlib.h>
#defineN10
structstudent{
charna[50];
charID[11];
intEnglish,Math,C_pro;
intsum;
}s[N],*p=s;
voidinput(structstudent*p,intn)
{
printf("请输入%d个学生信息: ",n);
for(inti=0;i<n;i++){
scanf("%s%s%d%d%d",&p[i].na,&p[i].ID,&p[i].English,&p[i].Math,&p[i].C_pro);
p[i].sum=p[i].English+p[i].Math+p[i].C_pro;
}
}
voidsort(structstudent*p,intn)
{
inti,j;
structstudenttmp;
for(i=0;i<n-1;i++){
for(j=0;j<n-i-1;j++){
if(p[j].sum<p[j+1].sum){
memcpy(&tmp,&p[j],sizeof(structstudent));
memcpy(&p[j],&p[j+1],sizeof(structstudent));
memcpy(&p[j+1],&tmp,sizeof(structstudent));
}
}
}
}
voiddisp(structstudent*p,intn)
{
for(inti=0;i<n;i++){
printf("%s %s %d %d %d %d ",p[i].na,p[i].ID,p[i].English,p[i].Math,p[i].C_pro,p[i].sum);
}
}
intmain()
{
input(p,N);
sort(p,N);
disp(p,N);
system("pause");
return0;
}
运行结果:
㈦ c语言编程题定义结构体描述 10 名学生的信息,每名学生的信息包括学号、姓名和大学英语成绩,请编写
c语言编程题定义结构体描述 10 名学生的信息,每名学生的信息包括学号、姓名赶快疯狂嘟嘟嘟嘟嘟嘟嘟嘟
㈧ c语言编程题,急定义结构体描述 10 名学生的信息,每名学生的信息包括学号……具体看问题描述!!
生的信息,每名学生的信息包括学号、姓名和大学英语
㈨ 用C语言结构体指针编程序实现输入十个学生的学号,期中和期末成绩,计算输出成绩表和学生平均分
#include<iostream>
#include<string>
using namespace std;
//=============<开始定义结构体>===================================================
struct combox{
int num;
int mark;
string name;
combox *next;
};
//=============<结束定义结构体>===================================================
//=============<开始定义Commonbox类>==============================================
//-----类体开始------------------------
class Commonbox{
private:
combox *head;void Swap(combox *,combox *); //交换两个combox变量的数据域
void Print(combox *); //输出一combox指定的记录
combox *Find(int); //查找条例条件的记录,并返回该记录的指针
public:
Commonbox(){head=NULL;}
int ListCount(); //统计当前链表的记录总数,返回一个整数
void AddItem(int num, string name, int mark); //添加一条记录到表尾
void RemoveItem(int); //删除一条指定的记录
void List(); //列出当前链表中的所有记录
void Sort(); //对当前链表进行排序
void Search(int); //在当前链表查找指定记录并输出
float Average(); //计算平均成绩
(9)c语言结构体处理10个学生的成绩扩展阅读
用C语言结构体指针编程序应用方法:
将一个结构体变量中的数据传递给另一个函数,有下列3种方法:
(1) 用结构体变量名作参数。一般较少用这种方法。
(2) 用指向结构体变量的指针作实参,将结构体变量的地址传给形参。
(3) 用结构体变量的引用变量作函数参数。
在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除。C语言中是利用库函数malloc和free来分配和撤销内存空间的。
㈩ c语言循环、数组、函数和结构体程序设计办法来输出10个学生的3门课成绩、平均成绩和总成绩
#include <stdio.h>
struct Grade
{
int a;
int b;
int c;
}Student[10];
main( )
{
for(int i=0;i<10;i++)
{
printf("请输入第%d个学生的1门课分数:",i+1);
scanf("%d",&Student[i].a);
printf("请输入第%d个学生的2门课分数:",i+1);
scanf("%d",&Student[i].b);
printf("请输入第%d个学生的3门课分数:",i+1);
scanf("%d",&Student[i].c);
printf("\n");
}
printf("\n");
for(i=0;i<10;i++)
{
printf("第%d个学生第1门课分数:%d\n",i+1,Student[i].a);
printf("第%d个学生第2门课分数:%d\n",i+1,Student[i].b);
printf("第%d个学生第3门课分数:%d\n",i+1,Student[i].c);
printf("总分:%d\n",Student[i].a+Student[i].b+Student[i].c);
printf("均分:%d\n\n",(Student[i].a+Student[i].b+Student[i].c)/3);
}
printf("\n");
}