c++问题,麻烦解释一下这段代码是什么意思!谢谢 20
#include<iostream>#include<iomanip>#include<string>usingnamespacestd;constintn=20;str...
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
const int n=20;
struct Work
{
int degree;
int work;
int num;
Work *next;
};Work a[20];
void display(Work a[20])
{
void output(Work b[20]);
int i,j,k,l,degree,work,num,total=0;
Work *next,b[20];
for(i=0;i<n;i++) //把a的信息转给b进行处理
{
b[i].num=a[i].num;
b[i].work=a[i].work;
b[i].degree=a[i].degree;
b[i].next=a[i].next;
}
for(i=0;i<n;i++) //冒泡法排序
for(j=0;j<n-1;j++)
{
if(b[j].work<b[j+1].work)
{
work=b[j].work;
num=b[j].num;
degree=b[j].degree;
next=b[j].next;
b[j].work=b[j+1].work;
b[j].num=b[j+1].num;
b[j].degree=b[j+1].degree;
b[j].next=b[j+1].next;
b[j+1].work=work;
b[j+1].num=num;
b[j+1].degree=degree;
b[j+1].next=next;
} 展开
#include<iomanip>
#include<string>
using namespace std;
const int n=20;
struct Work
{
int degree;
int work;
int num;
Work *next;
};Work a[20];
void display(Work a[20])
{
void output(Work b[20]);
int i,j,k,l,degree,work,num,total=0;
Work *next,b[20];
for(i=0;i<n;i++) //把a的信息转给b进行处理
{
b[i].num=a[i].num;
b[i].work=a[i].work;
b[i].degree=a[i].degree;
b[i].next=a[i].next;
}
for(i=0;i<n;i++) //冒泡法排序
for(j=0;j<n-1;j++)
{
if(b[j].work<b[j+1].work)
{
work=b[j].work;
num=b[j].num;
degree=b[j].degree;
next=b[j].next;
b[j].work=b[j+1].work;
b[j].num=b[j+1].num;
b[j].degree=b[j+1].degree;
b[j].next=b[j+1].next;
b[j+1].work=work;
b[j+1].num=num;
b[j+1].degree=degree;
b[j+1].next=next;
} 展开
展开全部
namespace是为了解决C++中的名字冲突而引入的。
什么是名字冲突呢?比如,在文件x.h中有个类MyClass,
在文件y.h中也有个类MyClass,而在文件z.cpp中要同时
引用x.h和y.h文件。显然,按通常的方法是行不能的,
那怎么办呢?引入namespace即可。例如:
在x.h中的内容为
// x.h
namespace MyNamespace1
{
class MyClass
{
public:
void f();
private:
int m;
}
};
在y.h中的内容为
// y.h
namespace MyNamespace2
{
class MyClass
{
public:
void f();
private:
int m;
}
};
然后在z.cpp中引入x.h和y.h
// z.cpp
#include "x.h"
#include "y.h"
void z::f()
{
//声明一个文件x.h中类MyClass的实例x
MyNamespace1::MyClass x;
//声明一个文件x.h中类MyClass的实例x
MyNamespace2::MyClass y;
//调用文件x.h中的函数f
x.f();
//调用文件y.h中的函数f
y.f();
}
名字空间实质上是一个作用域。
通过上面的一个实例应该知道名字空间的作用了吧
什么是名字冲突呢?比如,在文件x.h中有个类MyClass,
在文件y.h中也有个类MyClass,而在文件z.cpp中要同时
引用x.h和y.h文件。显然,按通常的方法是行不能的,
那怎么办呢?引入namespace即可。例如:
在x.h中的内容为
// x.h
namespace MyNamespace1
{
class MyClass
{
public:
void f();
private:
int m;
}
};
在y.h中的内容为
// y.h
namespace MyNamespace2
{
class MyClass
{
public:
void f();
private:
int m;
}
};
然后在z.cpp中引入x.h和y.h
// z.cpp
#include "x.h"
#include "y.h"
void z::f()
{
//声明一个文件x.h中类MyClass的实例x
MyNamespace1::MyClass x;
//声明一个文件x.h中类MyClass的实例x
MyNamespace2::MyClass y;
//调用文件x.h中的函数f
x.f();
//调用文件y.h中的函数f
y.f();
}
名字空间实质上是一个作用域。
通过上面的一个实例应该知道名字空间的作用了吧
追问
老哥,这个和我问的有关系吗??晕啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个代码有问题;
结构混乱, 怎么函数里面又有函数声明
void display(Work a[20])
{
void output(Work b[20]);
。。。。。
下面这段正如你的注释就是将 a 的值赋给了 b
for(i=0;i<n;i++) //把a的信息转给b进行处理
{
b[i].num=a[i].num;
b[i].work=a[i].work;
b[i].degree=a[i].degree;
b[i].next=a[i].next;
}
后面正如注释描述 就是对b排序
但是你的代码结构混乱,先整理好了再说吧,你看后面排序那个也是没有结尾
括号要配对啊!!
总体来说 你这个就是 对a 保留,然后对其copy 的b 进行排序
前面
结构混乱, 怎么函数里面又有函数声明
void display(Work a[20])
{
void output(Work b[20]);
。。。。。
下面这段正如你的注释就是将 a 的值赋给了 b
for(i=0;i<n;i++) //把a的信息转给b进行处理
{
b[i].num=a[i].num;
b[i].work=a[i].work;
b[i].degree=a[i].degree;
b[i].next=a[i].next;
}
后面正如注释描述 就是对b排序
但是你的代码结构混乱,先整理好了再说吧,你看后面排序那个也是没有结尾
括号要配对啊!!
总体来说 你这个就是 对a 保留,然后对其copy 的b 进行排序
前面
追问
我发的只是一部分,发太多你们麻烦。我就要每句话的意思!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
整型变量i
for(i=0;i<n;i++) //////执行一个循环程序for循环,循环从i=0开始,每次循环i+1,直到i<n既i=n-1结束,至于n等于多少应该在这段程序前有定义,总共循环了n次
{
a[i].degree=1; //////a[i].表示数组a中第i个元素,从这段程序看到这个元素有三个属性分别是 degree,work,num.
a[i].work=0;
a[i].num=i+1; ////每次循环 都赋予个元素的相应属性相应的值
}
int c;
for(;c!=3;)//////还是一个循环这个循环只是给了循环结束的条件 C不等于3
{
cout<<"请选择功能"<<'\n'; //////在屏幕上显示 “请选择功能 ” 并换行
cout<<"1 录入职工信息 "<<' '<<"2 输出职工信息"<<' '<<"3 退出:" <<endl;///在屏幕上显示
“1 录入职工信息 2 输出职工信息 3 退出:” “' ' ” 表示这三个之间用空格隔开
cin>>c;///////从键盘输入一个整数,并把这个数赋值给C
if(c==1)input(a);//////如果C等于1 则给数组a添加新元素
else if(c==2)display(a);//////如果C等于2则输出数组a中的数据
else if(c==3)break; ////如果C等于3循环结束 //用if循环语句建立菜单
else cout<<"输入错误,请再次输入:"; /////如果C不等于1、2、3,那么显示 输入错误,请再次输入:";
}
}
for(i=0;i<n;i++) //////执行一个循环程序for循环,循环从i=0开始,每次循环i+1,直到i<n既i=n-1结束,至于n等于多少应该在这段程序前有定义,总共循环了n次
{
a[i].degree=1; //////a[i].表示数组a中第i个元素,从这段程序看到这个元素有三个属性分别是 degree,work,num.
a[i].work=0;
a[i].num=i+1; ////每次循环 都赋予个元素的相应属性相应的值
}
int c;
for(;c!=3;)//////还是一个循环这个循环只是给了循环结束的条件 C不等于3
{
cout<<"请选择功能"<<'\n'; //////在屏幕上显示 “请选择功能 ” 并换行
cout<<"1 录入职工信息 "<<' '<<"2 输出职工信息"<<' '<<"3 退出:" <<endl;///在屏幕上显示
“1 录入职工信息 2 输出职工信息 3 退出:” “' ' ” 表示这三个之间用空格隔开
cin>>c;///////从键盘输入一个整数,并把这个数赋值给C
if(c==1)input(a);//////如果C等于1 则给数组a添加新元素
else if(c==2)display(a);//////如果C等于2则输出数组a中的数据
else if(c==3)break; ////如果C等于3循环结束 //用if循环语句建立菜单
else cout<<"输入错误,请再次输入:"; /////如果C不等于1、2、3,那么显示 输入错误,请再次输入:";
}
}
追问
你能不能不要抄袭啊!!这个就是我问过的东西!!拜托不会就不要回答撒!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询