我写了一个程序,利用数组,结构体,函数,指针,实现按学生的年龄从大到小输出学生的姓名和年龄,代码如下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我写了一个程序,利用数组,结构体,函数,指针,实现按学生的年龄从大到小输出学生的姓名和年龄,代码如下相关的知识,希望对你有一定的参考价值。

#include<iostream.h>
#include<string.h>
struct student

char name[10];
int age;
;
void ax(student *p,student *temp)

int i,j;
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if((p[i]).age>(p[j]).age)

temp=p[i];
p[i]=p[j];
p[j]=temp;


void main()

student z[10];
student temp="aaa",1;
int i;
for(i=0;i<10;i++)
cin>>z[i].name>>z[i].age;
ax(&z[10],&temp);
for(i=0;i<10;i++)
cout<<z[i].name<<z[i].age<<endl;

编译错误:error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'struct student' (or there is no acceptable conversion)

不能使用“=”将一个结构体赋值给另一个结构体。
在交换两个结构体的地方需要重写。追问

那要怎么改呀!

追答

#include
#include
using namespace std;
struct student

char name[10];
int age;
;
void ax(student *p, int num)

int i,j;
int tempNum;
char tempName[10];
for(i = 0; i >z[i].name>>z[i].age;
ax(z, 10);
for(i = 0;i < 10;i++)
cout<<z[i].name<<" "<<z[i].age<<endl;

参考技术A 看不懂 参考技术B ==

如何将不同类型的结构体作为一个函数的参数?

定义一个函数,需要将不同类型的结构体作为参数传递进去,请问怎样实现?这个参数定义为什么类型的呢?(可以用来接收不同的结构体)

可以利用函数的重载。比如说定义了两个结构体A和B,函数func()为要接受不同参数的函数,参数为c,可以写两个函数func(A &c).... func(B &c)..... 这样你传A类型的参数,就会调用前面的那个函数,你传B类型的参数,就会调用后面的那个函数。虽然写了两个函数,但却相当于定义了一个可接受不同类型参数的函数,不知符合你的要求不。 参考技术A 用结构体指针,分别用指针指向不同结构体的地址,然后将指针作为形参传进去 参考技术B 这样做的目的何在? viod *

以上是关于我写了一个程序,利用数组,结构体,函数,指针,实现按学生的年龄从大到小输出学生的姓名和年龄,代码如下的主要内容,如果未能解决你的问题,请参考以下文章

C语言开发函数库时利用不透明指针对外隐藏结构体细节

c语言 结构体的指针作为函数参数问题

C语言结构体数组 的输入方式

结构体数组怎么做函数参数

结构体构造函数使用总结

(60) 结构体指针结构体变量嵌套结构体指针嵌套函数指针数组指针指针数组typedef 综合运用