| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 777 人关注过本帖
标题:二维数组中元素替换问题!
只看楼主 加入收藏
sammy5258
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-27
收藏
 问题点数:0 回复次数:9 
二维数组中元素替换问题!

题目:对某个二维数组右上三角的全部元素(不包括对角线上的元素)做如下变换:
(1)若该数是偶数,则找到左下三角中和它关于对角线对称的元素用这两个元素的最大公约数替换该数
(2)若不是偶数,则不变。对该数组的左下三角形的元素(包括对角线上的元素)按小到大的顺序进行排序

我的思考:运用二维数组与指针应该可以解决,可想归想,我毕竟还是做不出来,再有关于那个替换更是让我头大!
举个具体的例子:
#include<stdio.h>
void main()
{
int f(int n);
int a[3][3];
int *p;int *q;
int b[6],c[3],i,j,t,k,e,g,m=0,n=0;
printf("请任意输入一千以内9个整数(数与数间用空格隔开):\n");
for(i=0;i<=2;i++)
{for(j=0;j<=2;j++)
scanf("%3d",&a[i][j]);
}
printf("二维数组:\n");
for(i=0;i<=2;i++)
{for(j=0;j<=2;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
如何将以上二维数组按要求变换?

本人实在太菜,望大虾们帮帮忙,谢谢了~

[此贴子已经被作者于2007-6-27 20:42:51编辑过]

搜索更多相关主题的帖子: 元素 
2007-06-27 09:20
sammy5258
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-27
收藏
得分:0 

高手们就这么无情吗


2007-06-27 09:39
veler
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2007-5-9
收藏
得分:0 
没听懂什么意思。。。

[glow=255,red,2]QQ交流:285113291 非编程爱好者勿扰![/glow]
2007-06-27 15:50
YOGIOH
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2007-5-8
收藏
得分:0 
如果不是偶数咋办?
就不换吗

个人认为找对称元素不难比如A[3][3]
A[1][2]对称的元素为A[2][1]也就是行列交换
找出这两个数之后再定义两个变量
变量1初始为两个数较小的数的值
变量2从两个数中较小的那个数循环到0再除如果满足条件就与变量1比较小于变量1则交换

[此贴子已经被作者于2007-6-27 16:00:59编辑过]


2007-06-27 15:52
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
收藏
得分:0 

0 1 2 3 4 5
0┌  ┐
1│      │
2│      │
3│      │
4│      │
5└      ┘
int i=0,j=0;
while(i<=5&&j>i&&j<=5)
if(A[i][j]%2==0)
temp=A[j][i];
A[j][i]=A[i][j];
A[i][j]=temp;
i++;
还有公约数。。。。
我走拉

[此贴子已经被作者于2007-6-27 16:19:28编辑过]


惟有学习不断的学习!
2007-06-27 16:17
sammy5258
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-27
收藏
得分:0 
以下是引用YOGIOH在2007-6-27 15:52:24的发言:
如果不是偶数咋办?
就不换吗

个人认为找对称元素不难比如A[3][3]
A[1][2]对称的元素为A[2][1]也就是行列交换
找出这两个数之后再定义两个变量
变量1初始为两个数较小的数的值
变量2从两个数中较小的那个数循环到0再除如果满足条件就与变量1比较小于变量1则交换

对!就是不变。不过要对该数组的左下三角的元素(包括对角线上的元素)按小到大的顺序进行排列


2007-06-27 16:30
sammy5258
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-27
收藏
得分:0 
以下是引用YOGIOH在2007-6-27 15:52:24的发言:
如果不是偶数咋办?
就不换吗

个人认为找对称元素不难比如A[3][3]
A[1][2]对称的元素为A[2][1]也就是行列交换
找出这两个数之后再定义两个变量
变量1初始为两个数较小的数的值
变量2从两个数中较小的那个数循环到0再除如果满足条件就与变量1比较小于变量1则交换

能详细点吗,或者编个A[3][3]的例子给小弟看一看


2007-06-27 16:35
sammy5258
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-27
收藏
得分:0 
大虾们不要见死不救啊~~~~~~~~~~

2007-06-27 20:44
YOGIOH
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2007-5-8
收藏
得分:0 

不明白第二种的排序
是按对角线排大小左上往下
还是从左往右?


2007-06-27 20:53
sammy5258
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-27
收藏
得分:0 
我个人认为是按对角线排大小左上往下

2007-06-27 20:57
快速回复:二维数组中元素替换问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036373 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved