Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
3 / 3 / 2
Регистрация: 14.05.2011
Сообщений: 55

Записать слова ограниченной длины в массив и выписать в обратном порядке

14.05.2011, 20:12. Показов 1741. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый вечер. Столкнулся сейчас с проблемой написания динамического двумерного массива.

Цель: записать слова ограниченой длины в массив и выписать в обратном порядке.
*изначально неизвестно, сколько будет слов.
Задача на Си.

Думал сделать что-то такое, как mas[i][255], но не умею работать с двумерными масивами, а тем более присваивать им память. Пытался сам разобраться, но никак не вышло.

Может ли кто-то помочь?
Зарание благодарю.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.05.2011, 20:12
Ответы с готовыми решениями:

Дан текст, слова минимальной длины записать в обратном порядке
Всем привет. Дан текст ,слова минимальной длины надо записать в обратном порядке.

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

Перевернуть слова предложения (записать буквы в обратном порядке)
Здравствуйте! помогите с программой ! Перевернуть слова предложения (Записать буквы в обратном порядке) Сохранив последовательность...

9
В вечном поиске...
 Аватар для Nursik77
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
14.05.2011, 20:14
А зачем делать это через массивы? и зачем двумерные?
0
3 / 3 / 2
Регистрация: 14.05.2011
Сообщений: 55
14.05.2011, 20:16  [ТС]
А каким способом? Суть в том, что нужно использовать динамическое программирование.
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 20:16
Присваивать им что?
0
В вечном поиске...
 Аватар для Nursik77
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
14.05.2011, 20:20
Можно через строки:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char str[800];
int i;
clrscr();
puts("Vvedite stroku: ");
gets(str);
puts(strrev(str));
getch();
}
1
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
14.05.2011, 20:20
Цитата Сообщение от N1K003 Посмотреть сообщение
Суть в том, что нужно использовать динамическое программирование.
Зачем для столь тривиальной задачи использовать ДП ?
0
3 / 3 / 2
Регистрация: 14.05.2011
Сообщений: 55
14.05.2011, 22:35  [ТС]
Цитата Сообщение от asics Посмотреть сообщение
Зачем для столь тривиальной задачи использовать ДП ?
Это Вы не у меня, а у препода спрашивайте

Nursik77, спасибо, но немножко не то... Но благодаря Вашей подсказке понял, что искать)


Посидел еще, разобрался со строками)
Можете найти ошибку, плз? Записывает первые 5 слов, после чего выписывает 5 раз последнее.
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
31
32
33
34
35
36
37
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
        char str[255];
        int *mas, i, j=0;
 
        mas=(int*)malloc(1);
 
        for(i=1;;i++)
        {
                if(str[j]=='s' || str[j+1]=='t' || str[j+2]=='o' || str[j+3]=='p')
/*stop if string is "stop"*/
                {
                        break;
                }
                else
                {
                        printf("Enter word #%d: ", i);
                        gets(str);
                        mas=(int*) realloc (mas, i+1 * sizeof(int));
                }
 
 
        }
 
        for(i;i>=1;i--)
        {
                puts(str);
        }
 
 
free(mas);
return 0;
}
Заранее спасибо
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
15.05.2011, 01:42
N1K003, Не разобрались. Нифига вы не делаете в программе. Каждый раз при gets в строку вводится новое значение и никуда не записывается. В итоге в последнем цикле получается 5 раз последнее слово.
0
3 / 3 / 2
Регистрация: 14.05.2011
Сообщений: 55
15.05.2011, 17:26  [ТС]
Да, понял уже, правда после того, как запостил тут; А отредактировать пост не смог.
Вот очередная попытка, теперь не могу придумать, как остановить ввод
Можете посмотреть плз и подсказть?

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
        char **mas;
        int i=0, j=0, t=0;
        int *ukaz;
        
        ukaz=(int*)malloc((t+1)*sizeof(int));
        mas=(char**)malloc((j+1) * sizeof(char*));
        mas[j]=(char*)malloc(255*sizeof(char));
        
        while(mas[i][j]!='s' && mas[i][j+1]!='t' && mas[i][j+2]!='o' && mas[i][j+3]!='p')
        {
            for(i;;i++)
            {
                while(mas[i][j]!='\n')
                {
                    for(j=0;;j++)
                    {
                        scanf("%c", &mas[i][j]);
                    }
                }
                
                for(t;;t++)
                {
                    ukaz[t]=j;
                    ukaz=(int*)realloc(ukaz, (t+1)*sizeof(int));
                }
                
                mas=(char**) realloc(mas, (j+1) * sizeof(char*));
            
            }
        }
 
        printf("\n");
        
        for(i; i>=0; i--)
        {
            for(t; t>=0; t--)
            {
                j=ukaz[t];
            }
            for(j; j>=0; j--)
            {
                printf("%c", mas[i][j]);
            }
            printf("\n");
        }
 
printf("\n\n\t\tEND\n");        
        
free(mas);
return 0;
}
Добавлено через 14 часов 56 минут
Попробовал еще сделать с помощью брейка, но не могу разобраться, где ставить. Подкажите кто-то, плиз
Может есть еще какие-то способы, как остановить цикл?
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
15.05.2011, 22:06
break нужно ставить в том месте, где хотите выйти из цикла. Если циклы вложенные, то выход будет осуществлен только из самого "глубокого".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.05.2011, 22:06
Помогаю со студенческими работами здесь

В тексте записать буквы каждого слова в обратном порядке
Введите текст. Запишите буквы каждого слова в обратном порядке. Порядок слов не менять. Добавлено через 42 секунды Зарание спасибо.

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

Как записать слова из Memo в обратном порядке в ListBox
В общем у меня программа. . .нужно заполнить строковый массив мемо и по нажатию кнопки чтобы все эти слова записанные в мемо записались В...

Выделить отдельные слова строки и записать их в обратном порядке
Задано строку из трех слов. Выделить отдельные слова и записать их в обратном порядке. Вывести преобразованную строку на экран.

Дана строка. Записать в обратном порядке буквы первого слова
Доброго всем дня. Собственно, условие задачи в названии темы. Я написал программу, которая переворачивает все слова, но как сделать так,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru