qq_38135741 2017-04-01 08:57 采纳率: 50%
浏览 1635

求解!没有编译错误,但运行不了

// ConsoleApplication1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include
#include
#include
#include

using namespace std;

// 学生信息结构体
struct STUINFO

{
// 学号、名字、班级
char NUM[10], NAME[10], CLASS[10];
// 三门成绩
int CHINESE, MATH, ENGLISH,AVERAGE;
};

class Array
{
public:
char Num[10], Class[10], Name[10];
int Grade[10];
} number;

int num = 170000;

// 学生的姓
char LastName[] =
{
'赵', '钱', '孙', '李', '周', '吴', '郑', '王',
'冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨',
'朱', '秦', '尤', '许', '何', '吕', '施', '张',
};

// 学生的名
char FirstName[] =
{
'一', '年', '四', '季', '最', '喜', '欢', '春',
'天', '也', '许', '与', '生', '俱', '来', '就',
'是', '浪', '漫', '的', '人', '当', '想', '着',
'要', '与', '中', '天', '融', '为', '体', '所',
'以', '到', '异', '常', '兴', '奋', '让', '传',
'染', '给', '我', '点', '明', '丽', '勃', '彩',
'赶', '走', '心', '雅', '积', '了', '久', '最',
'春', '郑', '重', '其', '事', '的', '把', '自',
'己', '打', '扮', '美', '得', '姿', '态', '迎',
'接', '好', '到', '来', '五', '彩', '斑', '斓',
'纯', '静', '雅', '亮', '夺', '目', '绚', '透',
'露', '出', '勃', '机', '空', '蓝', '整', '世',
};

// 定义函数获取学生相关信息
class Array createStuIfo();

int main()
{
int average[120], m, n, t;

// 将“学生的名”中重合的字换成空格,以生成两个字的姓名
for (int i = 0; i <= 96; i++)
    for (int j = 0; j <= 96; j++)
    {
        if (FirstName[i] == FirstName[j])
            FirstName[j] = (char)'\0';
    }

cout << "学生信息按一下顺序打印:\n"
    << "序号、学号、班级、姓名、语文成绩、数学成绩、英语成绩、平均成绩\n";

for (m = 0; m < 100; m++)
{
    ofstream output;
    output.open("stuinformation.txt");

    if (output.fail()) {
        cout << "Create file failed!" << endl;
        exit(1);
    }

    createStuIfo();

    output << number.Num << " " << number.Class << " " << number.Name << " "
        << number.Grade[0] << " " << number.Grade[1] << " " << number.Grade[2] << endl;
    output.close();

    STUINFO stut;

    ifstream input;
    input.open("stuinformation.txt");

    if (input.fail())
    {
        cout << "Open file failed!" << endl;
        exit(1);
    }

input >> stut.NUM >> stut.CLASS >> stut.NAME
>> stut.CHINESE >> stut.MATH >> stut.ENGLISH; // 从文件输入语、数、外三门成绩
stut.AVERAGE = (stut.CHINESE + stut.MATH + stut.ENGLISH) / 3;
average[m] = stut.AVERAGE;

    input.close();

    t = m;

    for (n = m + 1; n < 100; n++)
    {
        int change = 0;
        if (average[m] < average[n])
        {
            change = average[m];
            average[m] = average[n];
            average[n] = change;
            t = n;
        }
    }

    cout << "number(" << m << ")" << ": " << stut.NUM << " "
        << stut.CLASS << " " << stut.NAME << " "
        << stut.CHINESE << " " << stut.MATH << " "
        << stut.ENGLISH << " " << average << endl;
}

return 0;

}

class Array createStuIfo()
{
// 生成学生学号和班级
num++;
sprintf(number.Num, "%d", num);
number.Class[0] = '0';
number.Class[1] = rand() % 5;// 假定只有四个班集
number.Num[3] = number.Class[1];

// 随机产生学生姓名
int x, y, z;

srand(time(NULL));

x = rand() % 25;
y = rand() % 97;
z = rand() % 97;

number.Name[0] = LastName[x];
number.Name[1] = FirstName[y];
number.Name[2] = FirstName[z];

// 随机产生三门成绩
srand(time(NULL));

number.Grade[0] = rand() % 101;
number.Grade[1] = rand() % 101;
number.Grade[2] = rand() % 101;

return number;

}

  • 写回答

2条回答 默认 最新

  • threenewbee 2017-04-01 15:23
    关注
     // 将“学生的名”中重合的字换成空格,以生成两个字的姓名
    for (int i = 0; i <= 96; i++)
        for (int j = 0; j <= 96; j++)
        {
            if (FirstName[i] == FirstName[j])
                FirstName[j] = (char)'\0';
        }
    你这个可不是换成空格而是换成\0了
    
    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名