我写了一个程序,利用数组,结构体,函数,指针,实现按学生的年龄从大到小输出学生的姓名和年龄,代码如下
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,函数func()为要接受不同参数的函数,参数为c,可以写两个函数func(A &c).... func(B &c)..... 这样你传A类型的参数,就会调用前面的那个函数,你传B类型的参数,就会调用后面的那个函数。虽然写了两个函数,但却相当于定义了一个可接受不同类型参数的函数,不知符合你的要求不。 参考技术A 用结构体指针,分别用指针指向不同结构体的地址,然后将指针作为形参传进去 参考技术B 这样做的目的何在? viod *以上是关于我写了一个程序,利用数组,结构体,函数,指针,实现按学生的年龄从大到小输出学生的姓名和年龄,代码如下的主要内容,如果未能解决你的问题,请参考以下文章