#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语言结构体的一个程序,总是显示有错误,大佬们帮忙看下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)