#include<iostream.h>
#include<stdio.h>
#include<string.h>
struct student
{
char name[10];
unsigned int NO;
float result;
};
student kun[10];
void jiao(student **p,int t)
{
for(int i=0;i<t-1;i++)
{
for(int j=i+1;j<t;j++)
{
if(p[j]->result<p[j+1]->result)
{
student *temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
}
void main()
{
int i;
for(i=0; i<10; i++)
{
cout<<i<<": Name: ";
cin>>kun[i].name;
cout<<"N.O: ";
cin>>kun[i].NO;
cout<<"Result: ";
cin>>kun[i].result;
cout<<endl;
}
jiao(kun,10);
for(i=0; i<10; i++)
cout<<kun[i].name<<'\t'<<kun[i].NO<<'\t'<<kun[i].result<<endl;
}
提示错误是:error C2664: 'jiao' : cannot convert parameter 1 from 'struct student [10]' to 'struct student ** '
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.
3 个解决方案
#1
#include <iostream>
using namespace std;
#include<stdio.h>
#include<string.h>
struct student
{
char name[10];
unsigned int NO;
float result;
};
student kun[10];
void jiao(student *p,int t)
{
for(int i=0;i<t-1;i++)
{
for(int j=i+1;j<t;j++)
{
if(p[j].result<p[j+1].result)
{
student temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
}
void main()
{
int i;
for(i=0; i<10; i++)
{
cout<<i<<": Name: ";
cin>>kun[i].name;
cout<<"N.O: ";
cin>>kun[i].NO;
cout<<"Result: ";
cin>>kun[i].result;
cout<<endl;
}
jiao(kun,10);
for(i=0; i<10; i++)
cout<<kun[i].name<<'\t'<<kun[i].NO<<'\t'<<kun[i].result<<endl;
system("pause");
}
using namespace std;
#include<stdio.h>
#include<string.h>
struct student
{
char name[10];
unsigned int NO;
float result;
};
student kun[10];
void jiao(student *p,int t)
{
for(int i=0;i<t-1;i++)
{
for(int j=i+1;j<t;j++)
{
if(p[j].result<p[j+1].result)
{
student temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
}
void main()
{
int i;
for(i=0; i<10; i++)
{
cout<<i<<": Name: ";
cin>>kun[i].name;
cout<<"N.O: ";
cin>>kun[i].NO;
cout<<"Result: ";
cin>>kun[i].result;
cout<<endl;
}
jiao(kun,10);
for(i=0; i<10; i++)
cout<<kun[i].name<<'\t'<<kun[i].NO<<'\t'<<kun[i].result<<endl;
system("pause");
}
#2
不知道你的这段程序是什么意思?
#3
不怕,能通过就行了。
#1
#include <iostream>
using namespace std;
#include<stdio.h>
#include<string.h>
struct student
{
char name[10];
unsigned int NO;
float result;
};
student kun[10];
void jiao(student *p,int t)
{
for(int i=0;i<t-1;i++)
{
for(int j=i+1;j<t;j++)
{
if(p[j].result<p[j+1].result)
{
student temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
}
void main()
{
int i;
for(i=0; i<10; i++)
{
cout<<i<<": Name: ";
cin>>kun[i].name;
cout<<"N.O: ";
cin>>kun[i].NO;
cout<<"Result: ";
cin>>kun[i].result;
cout<<endl;
}
jiao(kun,10);
for(i=0; i<10; i++)
cout<<kun[i].name<<'\t'<<kun[i].NO<<'\t'<<kun[i].result<<endl;
system("pause");
}
using namespace std;
#include<stdio.h>
#include<string.h>
struct student
{
char name[10];
unsigned int NO;
float result;
};
student kun[10];
void jiao(student *p,int t)
{
for(int i=0;i<t-1;i++)
{
for(int j=i+1;j<t;j++)
{
if(p[j].result<p[j+1].result)
{
student temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
}
void main()
{
int i;
for(i=0; i<10; i++)
{
cout<<i<<": Name: ";
cin>>kun[i].name;
cout<<"N.O: ";
cin>>kun[i].NO;
cout<<"Result: ";
cin>>kun[i].result;
cout<<endl;
}
jiao(kun,10);
for(i=0; i<10; i++)
cout<<kun[i].name<<'\t'<<kun[i].NO<<'\t'<<kun[i].result<<endl;
system("pause");
}
#2
不知道你的这段程序是什么意思?
#3
不怕,能通过就行了。