排序算法变量写错了,把if语句中的j改成i就行了
void fun(SCORE a[ ])
{
SCORE tmp;
int i,j;
for (i=0;i
a [i]=a [j];
a[j] =tmp;
}
struct
{
char num[10];
int s;
}SCORE;
void fun(SCORE a[ ])
{
SCORE tmp;
int i,j,k;
for (i=0;i
k=i;
for (j=i+1; j
tmp =a [k];
a [k]=a [i];
a[i] =tmp;
}
}
这个才是选择排序法。
要是用冒泡法(主要算法)的话应该是:
for (j=0;j
a [i]=a [j];
a[j] =tmp;
}
#include "iostream"
#define M 5 //存放学生记录数
using namespace std;
struct student
{
char num[10]; //存放学生的学号
float maths; //存放学生的数学成绩
};
void fun(struct student stuA[]) //交换函数
{
int i,j;
struct student temp;
for(i = 0 ; i < M-1 ; i++)
{
for(j = i + 1 ; j < M ; j++)
{
if(stuA[i].maths < stuA[j].maths)
{
temp = *(stuA+i);
*(stuA+i) = *(stuA+j);
*(stuA+j) = temp;
}
}
}
}
void print(struct student stuA[]) //打印函数
{
int i;
cout << "学号 成绩" << endl;
for(i = 0 ; i < M ; i++)
{
cout << stuA[i].num << " " << stuA[i].maths << endl;
}
}
void main() //主函数
{
struct student stuArray[M];
for(int i = 0 ; i < M ; i++)
{
if(i == M)break;
cout << "请输入第" << i+1 << "记录:" << endl;
cout << "请输学号:";
cin >> stuArray[i].num;
cout << "请输成绩:";
cin >> stuArray[i].maths;
}
fun(stuArray);
print(stuArray);
}
嘿嘿,不知道是不是你想要的答案
for (j=0; j
不会有影响的,他评分时会重新运行程序,根据结果来进行评分