结构体数组的程序

结构体数组的程序,第1张

#include<stdioh>

struct Student

{

char name[10];

int math;

int english;

int computer;

float ave;

}stu[4]={{"Mary",93,100,88},{"Jone",82,90,90},{"Peter",91,76,71},{"Rose",100,80,92}};

void PrintMessage()

{

int i;

printf("姓名\t数学\t英语\t计算机\t平均成绩\n");

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

{

printf("%s\t%d\t%d\t%d\t%2f\n",stu[i]name,stu[i]math,stu[i]english,stu[i]computer,stu[i]ave);

}

}

void CalcAve()

{

int i;

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

{

stu[i]ave=(stu[i]math+stu[i]english+stu[i]computer)/30f;

}

}

void SortStud()

{

int i,j;

struct Student temp;

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

{

for(j=i;j<4;j++)

{

if(stu[i]ave<stu[j]ave)

{

temp=stu[i];

stu[i]=stu[j];

stu[j]=temp;

}

}

}

}

int main()

{

CalcAve();

printf("输出排序前的成绩列表:\n");

PrintMessage();

SortStud();

printf("输出排序后的成绩列表:\n");

PrintMessage();

return 0;

}

/学生成绩册

某班本学期共开4门课程,班上学生人数从键盘输入,学生记录由学号、姓名、性别、4门课程成绩组成(

学号、成绩都为实数,学生数据从键盘录入),要求使用结构数组

/

#include<stdioh>

#include<stdlibh>

#define MAXNUM 5

struct student

{

char id[7];

char name[20];

char sex;

float math;

float chin;

float engl;

float scin;

float sum;

float aver;

};

main()

{

struct student stu_list[MAXNUM];

int i,k;

char ch;

/建立成绩册/

i=0;

do

{

input(&stu_list[i]);/调用输入函数/

stu_list[i]sum=(stu_list[i]math+stu_list[i]chin+stu_list[i]engl+stu_list[i]scin);

stu_list[i]aver=stu_list[i]sum/4;

i++;

printf("\n 是否继续Y/N");

ch=getchar();

}while(ch=='Y'||ch='y');

k=i;

/输出成绩册/

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

{

printf("\n %-10s%-20s",stu_list[i]id,stu_list[i]name);

printf("%-5c%52f%52f",stu_list[i]sex,stu_list[i]sum,stu_list[i]aver);

}

}

input(pstu)

struct student pstu;

{

char sex[2];

char score[3];

printf("\n Enter id:");

gets(pstu->id);

if(atoi(pstu->id)==0)

return 0;

printf("\n Enter name:");

gets(pstu->name);

printf("\n Enter sex:");

gets(sex);

pstu->sex=sex[0];

printf("\n Enter math:");

gets(score);

pstu->math=atof(score);

printf("\n Enter chin:");

gets(score);

pstu->chin=atof(score);

printf("\n Enter engl:");

gets(score);

pstu->engl=atof(score);

printf("\n Enter scin:");

gets(score);

pstu->scin=atof(score);

}

// 结构体数组person[5]原有五个记录: zhou,wu,li,zheng,wang

// 现在,需要在zheng的位置增加1个记录test,那么,zheng和wang就相应往后移动

// 测试时输入:

// test 33 2000

// 输出6个记录

#include<stdioh>

#include<stringh> //需要调用strcpy()

//staff[5]与struct staff的名称一样,建议将staff[5]改为其它名称,例如 person[5]

struct staff

{

    char name[20];

    int age;

    float salary;

}person[5]={{"zhou",22,1500},{"wu",29,1200},{"li",30,900},{"zheng",32,900},{"wang",29,990}};

//原代码struct staff 1[6];  //变量名怎么看似是数字"1" 将其改为其它名称,例如 L

struct staff L[6];

int main()

{

    int i;  //int j; //j可以不用

    int k;

    //这些 staff a[3]name 不需要在变量前面加staff

     //原代码scanf("%s%d%d",staff a[3]name,staff a[3]age,staff a[3]salary);

    //for(i=0;i<3;i++)

    //    staff 1[i]=staff[i];

    //for(j=3;j<=5;j++)

    //    staff 1[j+1]=staff[j];

    //手工输入一个记录 浮点float用%f &L[3]age和&L[3]salary前面要加&

    scanf("%s%d%f",L[3]name,&L[3]age,&L[3]salary);

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

    {

        strcpy(L[i]name,person[i]name); //字符串的赋值用函数strcpy()

        L[i]age=person[i]age;

        L[i]salary=person[i]salary;

    }

    for(i=3;i<5;i++) //i不能等于5,因为person[5]的下标范围是0到4

    {

        strcpy(L[i+1]name,person[i]name); //字符串的赋值用函数strcpy()

        L[i+1]age=person[i]age;

        L[i+1]salary=person[i]salary;

    }

    for(k=0;k<6;k++) //屏幕输出6个记录

    {

       printf("%s %d %02f",L[k]name,L[k]age,L[k]salary); //%02f"表示保留2位小数

       printf("\n"); //每个记录要隔行

    }

    //原代码printf("%s%d%d",staff 1[k]name,staff 1[k]age,staff 1[k]salary);

    return 0;

}

#include<stdioh>

#include<stringh>

#include<stdlibh>

struct telephone

{

char name[10];

char telno[20];

};

void search(struct telephone b[], char x, int n);

int main()

{

int i,n;

struct telephone b[100];

char nane[100];

for(i=0;;i++)

{

printf("Please input name:");

gets(b[i]name);

if(b[i]name[0]=='#')

break;

printf("Please input telephone:");

gets(b[i]telno);

}

n=i;

printf("Please input you want to find name:");

gets(nane);

search(b,&nane[0],n);

return 0;

}

void search(struct telephone b[],char x,int n)

{

int i;

int find=0;

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

{

if(strcmp(x,b[i]name)==0)

{

printf("the telephone is %s\n",b[i]telno);

find=1;

}

}

if(find==0)

printf("Not found!");

}

#include<iostream>

#include<iomanip>

#include<string>

using namespace std;

struct Student

{

int num;

string name;

char sex;

int age;

};

int main()

{

Student stu={201105410,"luo ya tao",'b',22 };

cout<<"num : "<<stunum<<endl;

cout<<"name: "<<stuname<<endl;

cout<<"sex : "<<stusex<<endl;

cout<<"age : "<<stuage<<endl;

return 0;

}

以上就是关于结构体数组的程序全部的内容,包括:结构体数组的程序、跪求 C语言结构体程序、关于C语言结构体的一个程序,总是显示有错误,大佬们帮忙看下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9454181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存