急急急....C++小程序..快啊..
编一个的程实现以下功能
提示拥护选择以下的菜单
0-退出
1-输入数组
2-移动行
3-输出数组
要求用函数移动行。
(注:数组为二维数组,移动行的含义:将数组上一行的数据移到下一行。最后一行的数据移到首行
哪位哥哥帮俺写写..反正用处大大地..俺C++不熟..
问题点数:100、回复次数:12Top
1 楼mccxj(老鼠不逛街)回复于 2005-06-02 10:57:25 得分 2
if(求救==作业) 的确用处大大;
else 请耐心等候。。。Top
2 楼heartliubin(bin)回复于 2005-06-02 11:03:33 得分 2
循环移动,呵呵,找找吧,挺多的
也是学习的过程Top
3 楼jackywang1(好好活着,要么去死)回复于 2005-06-02 11:06:20 得分 0
我急啊..完事再加100分..君子一言四马也追不上!Top
4 楼runall(龙行天下)回复于 2005-06-02 11:11:21 得分 2
君子一言,什么马都难追
同情楼主Top
5 楼whatsouta(某疯子)回复于 2005-06-02 11:26:28 得分 2
问题本身不复杂,只是稍微有点麻烦而已,楼主就自己动一下手啦。Top
6 楼foochow(无聊,灌水......)回复于 2005-06-02 11:29:51 得分 2
mark!!自习去了,要考试了嘿嘿Top
7 楼cmoring(my study will go on)回复于 2005-06-02 11:29:54 得分 2
菜单?用VC或者BCB吧,单纯C++还是要依靠其它图形库的Top
8 楼hjcy_2002(hjcy)回复于 2005-06-02 11:33:20 得分 2
记录Top
9 楼mccxj(老鼠不逛街)回复于 2005-06-02 12:04:42 得分 80
#include <iostream.h>
#include <iomanip.h>
const m=5;//数组行数
const n=5;//数组列数
int main(void)
{
int i,j,k;//所选择的操作序号i
int a[m][n];//数组
int temp[n];
//进行初始化
for(j=0;j<m;j++)
for(k=0;k<n;k++)
{
a[j][k]=0;
}
select:
cout<<"0-退出"<<endl;
cout<<"1-输入数组"<<endl;
cout<<"2-移动行"<<endl;
cout<<"3-输出数组"<<endl;
cout<<"注意:数组默认初始化全为0!!"<<endl;
cout<<"请选择所要的功能(序号):"<<endl;
cin>>i;
switch(i)
{
case 0: cout<<"谢谢使用本系统!"<<endl;break;
case 1: for (j=0;j<m;j++)
for (k=0;k<n;k++)
{
cout<<"请输入a["<<j<<"]["<<k<<"]:";
cin>>a[j][k];
}
goto select;
case 2: for(i=0;i<n;i++)
temp[i]=a[m-1][i];
for(i=m-1;i>0;i--)
for(j=0;j<n;j++)
a[i][j]=a[i-1][j];
for(i=0;i<n;i++)
a[0][i]=temp[i];
goto select;
case 3: for (j=0;j<m;j++)
{
for (k=0;k<n;k++)
{
cout<<setw(10)<<a[j][k];
}
cout<<endl;
}
break;
default: cout<<"输入错误,请重新输入!!"<<endl;goto select;
}
return 0;
}
随便弄了一下。。不过没有用到函数移动行。。你可以自己改。。而且由于时间关系。。所以用了goto,不过思路还是比较清晰的。。。Top
10 楼lbing7(向青润老大学习!!!)回复于 2005-06-02 12:26:36 得分 0
这样思路你看行不?
用二级指针申请动态的二维数组
在移行的时候,改改指针就OK了!
只能帮到这了!
再帮下去你就没事做了!Top
11 楼zjyu88(刚步入三流大学)回复于 2005-06-02 12:41:50 得分 6
lbing7说得方法不错,,做起来挺方便,移动指针比移动数据效率高。。
--------------------------------
to lbing7:你是不是加了一个数据结构的群?你Q名叫:小lbing7(/?)Top
12 楼jackywang1(好好活着,要么去死)回复于 2005-06-02 15:44:31 得分 0
#include <stdio.h>
int a[3][3];
void GetData()
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
printf("Input a(%d,%d)的值:", i, j);
scanf("%d", &a[i][j]);
}
}
}
void MoveLine()
{
int temp[3];
int i, j;
//保存最后一行数据
for (j = 0; j < 3; j++)
{
temp[j] = a[2][j];
}
//从下向上换行
for (i = 2; i > 0; i--)
{
for (j = 0; j < 3; j++)
{
a[i][j] = a[i - 1][j];
}
}
//将最后一行数据放到第一行
for (j = 0; j < 3; j++)
{
a[0][j] = temp[j];
}
}
void ListData()
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%10d", a[i][j]);
}
printf("\n");
}
}
int main(int argc, char* argv[])
{
int intSelect;
do {
printf("\n请选择:\n\n0-退出\n1-输入数组\n2-移动行\n3-输出数组\n");
scanf("%d", &intSelect);
switch(intSelect)
{
case 0:
break;
case 1:
GetData();
break;
case 2:
MoveLine();
break;
case 3:
ListData();
break;
default:
printf("输入错误\n\n");
}
}while(intSelect);
return 0;
}
唉..看了半中午C++的书..自己写的..记性这不好..以前的东西忘了差不多了..给分Top




