请各位高手看我的程序错在那里?谢谢

时间:2023-02-03 11:48:38
//交换
#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");
}

#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");
}

#2


不知道你的这段程序是什么意思?

#3


不怕,能通过就行了。