2013-12-16 2 views
0

У меня возникли проблемы с сравнением двух массивов символов. Нам предлагается создать программу, которая будет получать общие и комбинированные символы, используя 2 массива. Комбинированная функция объединит все входы в массиве, и если будут общие буквы, функция будет отображать только одну букву один раз. Пример:Как сравнить определенное значение массива символов в конкретном индексе с другим массивом символов в определенном индексе

q w e r r 
e r t y u 
Output: q w e r t y u 

в то время как общая функция будет отображать только обычные символы Пример:

q w e r r 
e r t y u 
Output: e r 

мне нужно циклические заявления и динамическое распределение специально таНос. Если нет необходимости использовать тип данных boolean, то PLS не использовать. Используйте, если в противном случае.

Прототипы этих двух функций:

char*comb(char*,char*) //For combine method 
char*comm(char*,char*) //For common method 

ответ

0

Скажем, первый массив Array1 и второй один Array2.

Чтобы создать функцию Combine, вы должны создать третий массив с именем Array3.

public void Combine() 
{ 
    bool exist = false; 
    for (int i=0; i<Array1.lengh; i++) 
    { 
     for (int j=0; j<Array3.lengh; j++) 
     { 
      if (Array[i] != Array[j]) 
       exist = false; 
      else { 
       exist = true; 
       break; 
      } 
     } 
     if (!exist) 
     { 
       Array3.add(Array1[i]); 
       // output Array1[i] depends on the program you're using 
     } 
    } 
} 

См логики, как это должно быть, и попытаться создать Common функции.

+0

Что значит «bool exist = false» означает? – Jefferson

+0

'bool' - это тип типа' int' или 'string' ....' bool' может принимать только две переменные: 'true' или' false'. Здесь я проверяю, существует ли значение, тогда я устанавливаю существующий в true, если нет, я устанавливаю его в false, поэтому, если он не существует, он будет добавлен в Array3 и будет выведен. – Hanady

+0

ohh ok Я получаю концепцию. Thnx. Можете ли вы сделать еще одну версию этого funtion без использования логических типов данных? – Jefferson

0

Вот функция комбайна, вы можете передавать массивы символов в качестве параметров строки функции следующим образом

combine("qwerr", "ertyu");  // returns "qwertyu" 
function combine() { 
    var jString, jArr, cArr; 

    jString = ""; 
    cArr = []; 

    for (var i = 0, ii = arguments.length; i < ii; i++) { 
    jString += arguments[i]; 
    } 

    jArr = jString.split(""); 

    cArr.push(jArr[0]); 

    for (var j = 0, jj = jArr.length; j < jj; j++) { 
    if (test(j)) { 
     cArr.push(jArr[j]); 
    } 
    } 

    function test(j) { 
    var x = true; 
    for (var k = 0, kk = cArr.length; k < kk; k++) { 
     if (cArr[k] == jArr[j]) { 
     x = false; 
     break; 
     } 
    } 
    return x; 
    } 

    return cArr.join(""); 
} 

Функция для общего массива может быть создана с использованием той же концепции.

Смежные вопросы