C++ 帮帮忙改错,人都弄晕了。

来源:百度知道 编辑:UC知道 时间:2024/06/01 03:18:39
#include<stdio.h>
#include<stdlib.h>

struct student
{
int num;
char name[20];
char sex;
int a;
int a1,a2,a3;

}stu[39];

void calTotandAver(student*b)
{
int i;
for(i=0;i<38;i++)
{

b[i].a=b[i].a1+b[i].a2+b[i].a3+b[i].a3;
b[i].aver=b[i].a/3;
}
}

void sort(student*b)
{
int i,j;

for(i=0;i<38;j++)

for(j=i+1;j<38,j++)
{
if(b[i].a<a[j].a)
{

b[38].num=b[i].num;
b[38].name=b[i].name;
b[38].sex=b[i].sex;
b[38].aver=b[i].aver;
b[38].a=b[i].a;
b[38].a1=b[i].a1;
b[38].a2=b[i].a2;
b[38].a3=b[i].a3;

b[i].num=b[j].num;
b[i].name=b[j].name;
b[i].sex=b[j].sex;
b[i].aver=b[j].aver;
b[i].a=b[j].a;
b[i].a1=b[j].a1;
b[i].a2=b[j].a2;
b[i].a3=b[j].a3;

#include<stdio.h>
#include<stdlib.h>

//使用memcpy需用到此头文件
#include <memory.h>

struct student
{
int num;
char name[20];
char sex;
int a;
int a1,a2,a3;

//大哥你AVER都没定义,后面就自己在用了,怎么能不错呢?
int aver;

}stu[39];

void calTotandAver(student*b)
{
int i;
for(i=0;i<38;i++)
{

b[i].a=b[i].a1+b[i].a2+b[i].a3+b[i].a3;
b[i].aver=b[i].a/3;
}
}

void sort(student*b)
{
int i,j;

//大哥你太强了,for循环居然没有括号
for(i=0;i<38;j++)
{
for(j=i+1;j<38;j++)//大哥,这里是;不是,
{
//大哥,你的a[j]是从哪里来的?没用定义过的东西是无法使用的。我估计是b[j]吧?
if(b[i].a<b[j].a)
{

b[38].num=b[i].num;

//大哥,数组赋值是不能这样滴
//b[38].name=b[i].name;
//要这样,或者搞个for循环,一个字符一个字符赋值。
memcpy(b[38].name,b[i].name,20);

b[38].sex=b[