Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
bbqrst
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 41
1

Проверить, является ли заданный массив палиндромом

05.11.2018, 19:29. Просмотров 853. Ответов 7
Метки си (Все метки)

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

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
int main()
{
  int *a;
  int i, n;
  printf("vvedite kol-vo elementov: "); scanf("%d", &n);
  a = (int*)malloc(n * sizeof(int));
  for (i = 0; i<n; i++) {
    printf("a[%d] = ", i);
    scanf("%d", &a[i]);
  }
  for (i = 0; i<n; i++)
    printf("%d ", a[i]);
  free(a);
  return 0;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2018, 19:29
Ответы с готовыми решениями:

Проверить, является ли слово палиндромом
3.Палиндром Дано слово, состоящее только из строчных латинских букв. Проверьте, является ли это...

Проверить, является ли строка палиндромом
Cчитать из файла строку. Проверить, является ли она палиндромом. Пробелы игнорировать.

Проверить является ли текст палиндромом
1) Проверить является ли текст палиндромом. Вводятся буквы с клавы, максимальное количество...

Проверить, является ли заданная строка палиндромом
Проверить, является ли данная строка палиндромом. Пробелами и прописными буквами пренебрегать...

Проверить является ли введённое пользователем число палиндромом
Проверить является ли введённое пользователем число палиндромом ...

7
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
4501 / 3243 / 3909
Регистрация: 05.06.2014
Сообщений: 16,210
05.11.2018, 19:39 2
Определить, является ли массив палиндромом
0
bbqrst
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 41
05.11.2018, 22:53  [ТС] 3
Я видел эту тему , но там просто задается массив без динамического выделения памяти

Добавлено через 1 час 15 минут
ZX Spectrum-128, а как применить такой цикл так чтобы там было уместно динамическое выделение памяти ?

Добавлено через 1 час 52 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
int main(void) {
    int n,i,b,c;
    int *a;
    printf("vvedite kol-vo elementov: "); scanf("%d",&n);
    a = (int*)malloc(n * sizeof(int));
    for(int i=0;i<n;i++){
        printf("a[%d] = ", i); scanf("%d",&a[i]);
    }
    for (i = 0; i<n; i++)
        printf("%d ", a[i]);
    b = 1;
    c = n/2;
    for (int i = 0, j = n - 1; i < c; ++i, --j)
      if (a[i] != a[j]) {
    b = 0;
    }
   if(b==1)
        printf("\neto palindrom");
    else
        printf("\neto ne palindtom");
  free(a);
  return 0;
}
довел вроде как до ума , если что поправьте
0
stake-k26
541 / 413 / 324
Регистрация: 25.04.2016
Сообщений: 1,194
06.11.2018, 14:22 4
Лучший ответ Сообщение было отмечено bbqrst как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
//#include <malloc.h>
#include <stdlib.h>
 
int main (void)
{
    int n;              // размер массива
    printf("n = "); scanf("%d",&n);
    if (n < 1) return 0;            // массив не может быть меньше 1
 
    int * a = NULL;     // указатель на массив
    a = (int*) malloc(n * sizeof(int));
    if (!a) return 0;               // память не дали, выходим
 
    int i;
    for (i=0; i<n; i++)
    {
        printf("a[%d] = ", i+1);
        scanf("%d", &a[i]);
    }
 
    int k, palindrome = 1;
    for (i=0, k=n-1; i<k && palindrome; i++, k--)
        if (a[i] - a[k]) palindrome = 0;        // if (a[i] != a[k])
 
    // printf("\nit's %s\n", palindrome? "a palindrome" : "not a palindrome");
    printf("\nэто %s\n", palindrome? "палиндром!" : "не палиндром");
    free(a);
    return 0;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
10209 / 6108 / 1536
Регистрация: 25.07.2009
Сообщений: 11,609
06.11.2018, 16:48 5
Цитата Сообщение от stake-k26 Посмотреть сообщение
if (!a) return 0; // память не дали, выходим
Правильнее было бы return 1; Всё-таки программа с ошибкой завершилась.
0
stake-k26
541 / 413 / 324
Регистрация: 25.04.2016
Сообщений: 1,194
06.11.2018, 17:56 6
easybudda, у человека явно шиндовс, а там это никто не проверяет
0
bbqrst
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 41
06.11.2018, 18:31  [ТС] 7
stake-k26, а чем ваш код отличается от того что предоставлен выше ?
0
stake-k26
541 / 413 / 324
Регистрация: 25.04.2016
Сообщений: 1,194
06.11.2018, 19:13 8
bbqrst, не помню, устал я уже сегодня каждого второго читать учить. Ищите.. может найдете.
0
06.11.2018, 19:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2018, 19:13

Проверить, является ли введенное клавиатуры слово палиндромом
Здравствуйте, добрый вечер Может кто-нибудь мне помочь, кто-нибудь знает, как сделать этот код...

Задать 3 строчки, проверить является ли какая нибудь палиндромом
Помогите! Задать 3 строчки, проверить является ли какая нибудь палиндромом(то есть читается...

Определить, является ли массив палиндромом
Добрый день Помогите новичку разобраться с программой задача: Палиндром Определить является...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru