循环与数组问题3

来源:互联网 发布:编程算法是什么 编辑:程序博客网 时间:2024/05/21 04:20

题3:

有两个等长数组A、B,所含元素相同,但顺序不同,只能取得A数组某值和B数组某值进行比较,比较结果为大于、小于或等于,但是不能取得同一数组A或B中的两个数进行比较。写一个算法实现正确的匹配(即A数组中某值与B中某值等值)【英国著名图形图像公司A2007年4月校园招聘面试题】

解析:

算法:循环加判断可以很快地解决这个问题。

算法分析:假设两个数组A[10]、B[10]。

将A.0与B.0进行比较,判断它们是否等值或大于、小于,如果等值则打印出来,不等值则比较B.1……以此类推。

答案:

// P87_example3.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>void mach(int *a, int *b, int c){for(int i = 0; i < c; i++){for(int j = 0; j < c; j++){if(a[i] == b[j]){std::cout<<"a["<<i<<"]=b["<<j<<"] ";}}std::cout<<std::endl;}}int _tmain(int argc, _TCHAR* argv[]){int a[10] = {1,1,3,4,5,6,7,8,9,10};int b[10] = {10,9,8,5,7,4,6,3,1,1};mach(a,b,10);return 0;}