用结构体类型编写一个程序,输入一个学生的学号、姓名、及3门课的成绩,计算机并输出其平均成绩。

如题所述

#include "stdio.h"

void main(){

 struct Student{

        char id[10];

        char name[10];

        int score;

    }

    stu = {"001", "Sam", 80};

    printf("%s\t%s\t%d", stu.id, stu.name, stu.score);

}

扩展资料

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。 

C++提供了许多种基本的数据类型(如int、float、double、char等)供用户使用。但是由于程序需要处理的问题往往比较复杂,而且呈多样化,已有的数据类型显得不能满足使用要求。

因此C++允许用户根据需要自己声明一些类型,用户可以自己声明的类型还有结构体类型(structure)、共用体类型(union)、枚举类型(enumeration)、类类型(class )等,这些统称为用户自定义类型(user-defined type,UDT)。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-25

#include <iostream>

using namespace std;

struct student 

{

int num;

char name[10];

char sex;

double score[3];

double sum;

};

void out(student *p);

int main()

{

struct student stu[2],*ps;

int i;

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

{

cout<<"Please input score of student"<<i<<endl;

cout<<"num:";

cin>>stu[i].num;

cout<<endl;

cout<<"name:";

cin>>stu[i].name;

cout<<endl;

cout<<"sex:";

cin>>stu[i].sex;

cout<<endl;

for (int j=0;j<3;j++)

{

cout<<"score["<<j<<"]:";

cin>>stu[i].score[j];

cout<<endl;

}

stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];

}

ps=stu;

out(ps);

system ("pause");

return 0;

}

void out(student *p)

{

int i,n=2,min,m,t;

min=p->sum;

m=0;

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

{

if (min<(p+1)->sum)

{

/* t=p->sum;

p->sum=(p+1)->sum;

(p+1)->sum=t;*/

min=(p+1)->sum;

}

cout<<p->num<<"        "<<p->name<<"        "<<p->sex<<"        "<<p->score[0]<<"        "<<p->score[1]<<"        "<<p->score[2]<<"        "<<p->sum<<endl;

}

}

扩展资料

结构体类型名用来作结构体类型的标志。上面的声明中Student就是结构体类型名。大括号内是该结构体中的全部成员(member),由它们组成一个特定的结构体。

num,name,sex,score等都是结构体中的成员。在声明一个结构体类型时必须对各成员都进行类型声明即类型名成员名;每一个成员也称为结构体中的一个域(field)。成员表列又称为域表。

声明结构体类型的位置一般在文件的开头,在所有函数(包括main函数)之前,以便本文件中所有的函数都能利用它来定义变量。当然也可以在函数中声明结构体类型。

本回答被网友采纳
第2个回答  推荐于2018-03-13

很简单~

自己再改一下~

#include<iostream>

using namespace std;

struct student

{

int number;

char name[10];

float score[3];

float average;

};

void order(student s[],int n)

{

int i,j;

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

s[i].average=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;

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

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

if(s[i].average<s[j].average)

{

student temper;

temper=s[i];

s[i]=s[j];

s[j]=temper;

}

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

cout<<s[i].number<<" \t"<<s[i].name<<"\t"<<s[i].score[0]<<"\t"<<s[i].score[1]<<"\t"<<s[i].score[2]<<"\t"<<s[i].average<<endl;

}

int main()

{

int i;

student s[100];

cout<<"enter the numer name and the score of course:"<<endl;

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

{

cin>>s[i].number>>s[i].name>>s[i].score[0]>>s[i].score[1]>>s[i].score[2];

if(s[i].number == 0)

break;

}

cout<<"the order of the score is:"<<endl;

cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"语文"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"<<"平均成绩"<<endl;

order(s,i);

}

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网