判断一个二维数组中有没有相同的数。有就输出它。这段代码怎么写。用C和JAVA都行 20
3个回答
展开全部
public void test07() {
int size = 100;
int array[][] = new int[size][size];
/**随机填充数组 start**/
Random r = new Random();
for (int i=0; i<size; i++) {
for (int j=0; j<size; j++) {
array[i][j] = r.nextInt(size * size);//十万
}
}
/**随机填充数组 over**/
/**分析相等 start**/
Map<Integer, Boolean> map = new HashMap<Integer, Boolean>();
for (int i=0; i<size; i++) {
for (int j=0; j<size; j++) {
boolean value = false;
if(map.containsKey(array[i][j])) {
value = true;
}
map.put(array[i][j], value);
}
}
/**分析相等 over**/
for (Map.Entry<Integer, Boolean> entry : map.entrySet()) {
if (entry.getValue()) {
System.out.println(entry.getKey());
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int MaxRows = 10;
const int MaxColmns = 8;
int main() {
int arr[MaxRows][MaxColmns];
int flags[MaxRows][MaxColmns] = {0};
int i,j,cnt;
int *pArr = &arr[0][0];
int *pFlags = &flags[0][0];
srand((unsigned)time(NULL));
for(i = 0; i < MaxRows; ++i) {
for(j = 0; j < MaxColmns; ++j) {
arr[i][j] = rand() % (MaxRows * MaxColmns);
printf("%4d ",arr[i][j]);
}
printf("\n");
}
for(i = 0; i < MaxRows * MaxColmns - 1; ++i) {
for(j = i + 1; j < MaxRows * MaxColmns; ++j)
if(pArr[i] == pArr[j]) ++pFlags[j];
}
printf("\n");
cnt = 0;
for(i = 0; i < MaxRows * MaxColmns; ++i) {
if(pFlags[i] == 1) {
if(cnt && cnt % MaxColmns == 0) putchar('\n');
printf("%4d ",pArr[i]);
++cnt;
}
}
if(cnt % MaxColmns) printf("\n");
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询