帮我调试一下,作业

来源:百度知道 编辑:UC知道 时间:2024/05/10 06:56:12
题目:编一个随机生成10个数的线性表.遍历这个线性表,把他输出来
我是这样编的:

#include<iostream.h>
#include<string.h>
#include <stdio.h>
#include <stdlib.h>
#include<iomanip.h>
#include<fstream.h>
const int maxsize=1000;
typedef int elemtype;
struct list//定义一个线性表LIST
{
elemtype * list[maxsize];
int size;
};
void main(void)
{
int i,a;
//int b;
list l;
for (i=0;i<maxsize;i++)
{
l.list[i]=0;
l.size=0;
};
for (i=0;i<10;i++)
{
a=rand()%1000;//随机生成10个数。10就是2位数随机以内的整数.1000就是3位数随机以内的整数
l.list[i]=a;
l.size++;//把随机生成的10个数放到线性表了
};
for(i=0;i<maxsize;i++)//遍历线性表
cout<<l.list[i]<<endl;
}

报错是:
error C2580: redefinition of class name 'list'

(11) : see declaration of 'list'

(21) : error C2274: 'function-style cast' : illegal as ri

list是类库中已定义的类标识符,需要改名
elemtype * list[maxsize]; 是定义指针数组语句,应改为elemtype list[maxsize]; (注意成员数组名不能与结构体名相同)
修正如下:

#include<iostream.h>
#include<string.h>
#include <stdio.h>
#include <stdlib.h>
#include<iomanip.h>
#include<fstream.h>
const int maxsize=1000;
typedef int elemtype;
struct mylist//定义一个线性表mylist
{
elemtype list[maxsize];
int size;
};
void main(void)
{
int i,a;
//int b;
mylist l;
for (i=0;i<maxsize;i++)
{
l.list[i]=0;
l.size=0;
};
for (i=0;i<10;i++)
{
a=rand()%1000;//随机生成10个数。10就是2位数随机以内的整数.1000就是3位数随机以内的整数
l.list[i]=a;
l.size++;//把随机生成的10个数放到线性表了
};
for(i=0;i<maxsize;i++)//遍历线性表
cout<<l.list[i]<<endl;
}