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");
}