写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友。
struct student
{
int xuehao;
char name[30]; //字符串
char xingbie;
float chengji;
}; //;不能丢
struct student a={001,"Houge",'M',99};
struct student
{
int xuehao;
char name[30];
char xingbie;
float chengji;
}a={001,"Houge",'M',99};
#include
struct student
{
int xuehao;
char name[30];
char xingbie;
char zhuzhi[60];
}a={001,"Houge",'M',"Hua Guo Shan"};
int main()
{
printf("学号:%d\n姓名:%s\n性别:%c\n住址:%s\n",a.xuehao,a.name,a.xingbie,a.zhuzhi);
return 0;
}
#include
struct student
{
int xuehao;
char name[30];
float chengji;
}a, b;
int main()
{
printf("请输入第一个学生的学号、姓名和成绩:\n");
scanf_s("%d,%s,%f", &a.xuehao, a.name, &a.chengji);
printf("请输入第二个学生的学号、姓名和成绩:\n");
scanf_s("%d,%s,%f", &b.xuehao, b.name, &b.chengji);
printf("成绩较高者的信息如下:\n");
if (a.chengji > b.chengji)
printf("%d\t%s\t%f\n", a.xuehao, a.name, a.chengji);
else if (a.chengji < b.chengji)
printf("%d\t%s\t%f\n", b.xuehao, b.name, b.chengji);
else
printf("%d\t%s\t%f\n", a.xuehao, a.name, a.chengji);
printf("%d\t%s\t%f\n", b.xuehao, b.name, b.chengji);
return 0;
}
struct student
{
int xuehao;
char name[30];
float chengji;
}xuesheng[3]={{001,"HouBoShi",99},{002,"ShaPaoZi",20},{003,"ShaLeBaJi",90}};
#include
struct student
{
int xuehao;
char name[30];
float chengji;
}xuesheng[3] = { {001,"HouBoShi",99},{002,"ShaPaoZi",20},{003,"ShaLeBaJi",90} };
int main()
{
struct student linshi;
int i, j;
for(i=0;i<2;i++)
for (j = i+1; j < 3; j++)
if (xuesheng[j].chengji > xuesheng[i].chengji)
{
linshi = xuesheng[i]; xuesheng[i] = xuesheng[j]; xuesheng[j] = linshi;
}
printf("排序后的各学生信息如下:\n");
for(i=0;i<3;i++)
printf("%d\t%s\t%f\n", xuesheng[i].xuehao, xuesheng[i].name, xuesheng[i].chengji);
return 0;
}
例3
#include
struct student
{
int xuehao;
char name[30];
float fen1;
float fen2;
}sheng[5];
int main()
{
struct student max(struct student a[]);
struct student xueba;
int i;
for (i = 0; i <= 4; i++)
{
printf("请输入第%d名学生的学号、姓名和2门成绩:\n", i + 1);
scanf("%d,%s,%f,%f", &sheng[i].xuehao, sheng[i].name, &sheng[i].fen1, &sheng[i].fen2);
}
xueba = max(sheng);
printf("平均分最高的学生的信息如下:\n");
printf("学号:%d\n姓名:%s\n 2门成绩:%f,%f\n", xueba.xuehao, xueba.name, xueba.fen1,xueba.fen2);
return 0;
}
struct student max(struct student a[])
{
float pingjunfen[5];
int i, zuigao;
for (i = 0; i <= 4; i++)
pingjunfen[i] = (a[i].fen1 + a[i].fen2) / 2;
for (zuigao = 0,i = 1; i <= 4; i++)
if (pingjunfen[zuigao] < pingjunfen[i])
zuigao = i;
return(a[zuigao]);
}
#include
struct student
{
int xuehao;
char name[30];
char xingbie;
}a={001,"Houge",'M'};
int main()
{
struct student *p;
p=&a;
printf("学号:%d\n姓名:%s\n性别:%c\n",a.xuehao,a.name,a.xingbie); //a=(*p)
//可以写成:(*p).xuehao,(*p).name,(*p).xingbie
//还可以写成:p->xuehao,p->name,p->xingbie
return 0;
}
struct student *p;
p=&a;
以下三种形式等价:
a.xuehao,a.name,a.xingbie
(*p).xuehao,(*p).name,(*p).xingbie
p->xuehao,p->name,p->xingbie
#include
struct student
{
int xuehao;
char name[30];
float chengji;
}xuesheng[3] = { {001,"HouBoShi",99},{002,"ShaPaoZi",20},{003,"ShaLeBaJi",90} };
int main()
{
struct student linshi;
int i, j;
for(i=0;i<2;i++)
for (j = i+1; j < 3; j++)
if (xuesheng[j].chengji > xuesheng[i].chengji)
{
linshi = xuesheng[i]; xuesheng[i] = xuesheng[j]; xuesheng[j] = linshi;
}
printf("排序后的各学生信息如下:\n");
for(i=0;i<3;i++)
printf("%d\t%s\t%f\n", xuesheng[i].xuehao, xuesheng[i].name, xuesheng[i].chengji);
return 0;
}
#include
struct student
{
int xuehao;
char name[30];
float chengji;
}xuesheng[3] = { {001,"HouBoShi",99},{002,"ShaPaoZi",20},{003,"ShaLeBaJi",90} };
int main()
{
struct student linshi,*p;p=&xuesheng[0];//指针与结构体数组相关联
int i, j;
for(i=0;i<2;i++)
for (j = i+1; j < 3; j++)
if ((*(p+j)).chengji > (*(p+i)).chengji) //xuesheng[i]=(*(p+i))
{
linshi = *(p+i); *(p+i)= *(p+j); *(p+j)= linshi; //xuesheng[i]=*(p+i)
}
printf("排序后的各学生信息如下:\n");
for(i=0;i<3;i++)
printf("%d\t%s\t%f\n", (*(p+i)).xuehao, (*(p+i)).name, (*(p+i)).chengji); //xuesheng[i]=(*(p+i))
return 0;
}
以上是自己通过学习整理所得,大家有相关问题,可以留言,一起交流学习!
转载或者引用本文内容请注明来源及原作者
参考
《C语言》4小时不挂科【猴博士爱讲课】——第4~7课