| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2330 人关注过本帖
标题:结构体之间的嵌套 为什么运行不了?
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
还有一个小问题,属于细节方面,顺便指出~

scanf("%d",&pGrade->math);
printf("请输入英语成绩:\n");
scanf("%d",&pGrade->math);//scanaf("%d",&Grade->english);

收到的鲜花
  • a35751812016-12-13 13:46 送鲜花  3朵   附言:好文章

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-13 13:39
a3575181
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2016-12-13
收藏
得分:0 
回复 10楼 九转星河
请问一下这是什么原因,为什么用*nanme不行呢》?
2016-12-13 13:40
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 12楼 a3575181
*name只是一个指针,你想它指向哪儿,除非你能赋给它一个指向的地址,然后把输入数据保存在该地址里面~还是用数组处理name[10];比较常规~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-13 13:46
a3575181
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2016-12-13
收藏
得分:0 
回复 11楼 九转星河
if(Student stu[0]->Grade->average<Student stu[1]->Grade->average)
    printf("%s 比 %s 平均成绩低",stu[0],stu[1]);
else printf("%s 比 %s 平均成绩低",stu[1],stu[0]);



不知道这个平均分怎么比较,我知道我这个是不对的
2016-12-13 13:48
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 14楼 a3575181
土一点的你这样也可以,把平均分看作是一个普通变量,直接比较大小就行了。比较方法有很多,可以找最值,还可以排序比较~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-13 13:55
a3575181
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2016-12-13
收藏
得分:0 
回复 15楼 九转星河
怎么做
2016-12-13 13:58
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 16楼 a3575181
举个例子:
if (a>b)printf("a>b");
else if (a<b)printf("a<b");
else printf("a==b");

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-13 14:01
a3575181
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2016-12-13
收藏
得分:0 
回复 17楼 九转星河
问题是怎么找到average的值 用的数组 怎么可以表示average1,和average2 ?  (Student stu[0]->Grade->average我的方法报错怎么办?
2016-12-13 14:05
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 18楼 a3575181
这个我也不好说~再把修改后的代码发一下~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-13 14:10
a3575181
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2016-12-13
收藏
得分:0 
回复 19楼 九转星河
程序代码:
#include <stdio.h>
#include <stdlib.h>

typedef
struct{
char name[10];
char sex;
unsigned int age;
}Person;

typedef
struct{
  int math;
  int english;

 int chinese;
  int average;
}Grade;

typedef
struct{
Person person;
long number;
Grade grade;
}Student;
void personInput(Person *pPerson);
void personOutput(Person *pPerson);
void gradeInput(Grade *pGrade);
void gradeOutput(Grade *pGrade);
void studentInput(Student *pstudent);
void studentOutput(Student *pstudent);

int main()
{
    int i;
    Student stu[]={{},{}};


    printf("请输入学生信息:");
  studentInput(&stu[i]);}
if(Student stu[0]->Grade->average<Student stu[1]->Grade->average)
    printf("%s 比 %s 平均成绩低",stu[0],stu[1]);
else printf("%s 比 %s 平均成绩低",stu[1],stu[0]);
   for(i=0;i<2;i++)
  studentOutput(&stu[i]);
    printf("So Easy!");

    return 0;

}

 void personInput(Person *pPerson){
printf("请输入姓名:");
scanf("%s",pPerson->name);
getchar();
printf("请输入性别:");
scanf("%c",&(pPerson->sex));
printf("请输入年龄:");
scanf("%u",&(pPerson->age));}

void personOutput(Person *pPerson){
printf("person:%s的个人信息为:\n",pPerson->name);
printf("\t Name: %s\n",pPerson->name);
printf("\t Sex : %c\n",pPerson->sex);
printf("\t Age : %d\n",pPerson->age);
}
void gradeInput(Grade *pGrade){
printf("请输入数学成绩:");
scanf("%d",&pGrade->math);
printf("请输入英语成绩:");
scanf("%d",&pGrade->english);
printf("请输入语文成绩:");
scanf("%d",&pGrade->chinese);
printf("请输入平均分成绩:");
scanf("%d",&pGrade->average);
}
void gradeOutput(Grade *pGrade){
printf("\t 数学:%d\n",pGrade->math);
printf("\t 英语:%d\n",pGrade->english);
printf("\t 语文:%d\n",pGrade->chinese);
printf("\t 平均分:%d\n",pGrade->average);
}
void studentInput(Student *pstudent){
    personInput(&pstudent->person);
    printf("请输入学号:\n");
    scanf("%ld",&pstudent->number);
    gradeInput(&pstudent->grade);
    }
void studentOutput(Student *pstudent){
    personOutput(&pstudent->person);
    gradeOutput(&pstudent->grade);
    printf("学号:%ld",pstudent->number);


}











2016-12-13 14:12
快速回复:结构体之间的嵌套 为什么运行不了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022370 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved