Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Си] Найти палиндромы


Автор: Lusiana 31.3.2009, 13:15
Люди помагите,пожалуйста!
Дан символический массив A[N][M],элементами которого являються сторчные русские буквы.Определить индексы тех строк массива,которые яв-ся палидромами.

Автор: taiven 31.3.2009, 18:31
Код

#include <stdio.h>
#include <string.h>

int check(const char *Arr)
{
    int n = 0, m = strlen(Arr)-1;
    while(n < m) if(Arr[n++]!=Arr[m--]) return 0;
    return 1;
}
int main()
{    
    const int M = 5;
    const int N = 10;
    char arr[M][N] = {"ПРОГРАММА","КАЗАК","СТОЛ","ШАЛАШ","ЯБЛОНЯ"};    
    
    for(int i = 0; i < M; i++)
        if(check(arr[i])) printf("%d%c", i, '\n');

    return 0; 
}

Автор: Lusiana 31.3.2009, 19:08
Спасибо!!!!!! smile А можно это кк-нибудь сделать без указателей?????777

Автор: taiven 31.3.2009, 19:57
Цитата(Lusiana @  31.3.2009,  18:08 Найти цитируемый пост)
А можно это кк-нибудь сделать без указателей?????777

массивы всегда передаются в функции по указателю. 

Автор: zim22 31.3.2009, 20:14
Цитата(taiven @  31.3.2009,  19:57 Найти цитируемый пост)
массивы всегда передаются в функции по указателю. 

да что вы говорите. их можно и по ссылке передавать.
Код
void printValues(int (&arr)[10]) {
  for (int i = 0; i != 10; ++i)
    std::cout << arr[i] << " ";
  }

int main()
{               
  int k[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};         
  printValues(k);
  return 0;
}


Автор: deadlegolas 31.3.2009, 20:18
http://forum.vingrad.ru/forum/topic-249535/kw-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0.html

Автор: zim22 31.3.2009, 20:29
Цитата(Lusiana @  31.3.2009,  19:08 Найти цитируемый пост)
А можно это кк-нибудь сделать без указателей?????777

не бойтесь, они не кусаются.

Автор: taiven 31.3.2009, 21:11
Цитата(zim22 @  31.3.2009,  19:14 Найти цитируемый пост)
да что вы говорите. их можно и по ссылке передавать.

название темы
Цитата

[Си]Найти палиндромы 

 smile 

Автор: Rififi 31.3.2009, 21:47
массивы всегда передаются в функции по указателю. 
Цитата(zim22 @  31.3.2009,  21:14 Найти цитируемый пост)
их можно и по ссылке передавать.


и даже по указателю. (:

Автор: zim22 1.4.2009, 07:00
Цитата(taiven @  31.3.2009,  21:11 Найти цитируемый пост)
название темы

полагаться на разницу между С и С++ в центре помощи не особо стоит. Вы сами можете посмотреть, что половина тем на С предполагала решение на С++ и наоборот smile

Автор: Dov 1.4.2009, 14:10
Цитата(zim22 @  31.3.2009,  20:14 Найти цитируемый пост)
да что вы говорите. их можно и по ссылке передавать.

что-то у меня не выходит..  smile 
Код
void printValues(int (&arr)[10])
{
    for (int i = 0; i != 10; ++i)
        std::cout << arr[i] << " ";
}

int main()

    //int k[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int * k = new int[10];

    for (int i = 0; i != 10; ++i)
        k[i] = i;

    printValues(k);

    delete [] k;

    return 0;
}


Автор: zim22 1.4.2009, 14:23
Цитата(Dov @  1.4.2009,  14:10 Найти цитируемый пост)
что-то у меня не выходит..  

переменная k у вас объявлена как указатель, а не как массив.
и этот указатель вы потом передаёте в функцию, которая ожидает ссылку на массив, а не указатель.
хотите чтобы работало, замените функцию на 
Код

void printValues(int *arr)



Автор: Dov 1.4.2009, 15:35
Цитата(zim22 @  1.4.2009,  14:23 Найти цитируемый пост)
хотите чтобы работало, замените функцию на 

Спасибо, попробую...    smile 


з.ы.   А у Вас вся спина белая..   smile 

Автор: zim22 1.4.2009, 17:53
Dovsmile с 1 апреля smile

Автор: Dov 1.4.2009, 18:29
zim22,  взаимно..   smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)