Массивы символов в C++

Тема в разделе "Общие вопросы по С и С++", создана пользователем chagin_yav, 4 янв 2008.

Статус темы:
Закрыта.
  1. chagin_yav

    chagin_yav Гость

    Приветствую!
    (среда borland c++ 3.1)
    Такая задача:
    С помощью ПСП (псевдослучайной последовательности) сформировать двухмерный массив. А в качестве элементов этого массива использовать одномерный массив из l символов. Причём одномерный массив из l символов должен представлять из себя слово заданной длины l с меняющимися символами и длиной(незаполненные позиции в зависимости от длины слова заполняются пробелами).

    Например:
    array[m][n]
    word[l]
    (m,n,l -константы)
    Массив array[m][n] это нечто вроде таблицы с заданным числом строк столбцов, m,n, соответственно.
    Массив word[l] это слово - 1 ячейка массива array[m][n]

    Т.е. в результате на выводе должно получится что-то вроде:
    (допустим 2-мерный массив 6x3 и одномерный =5)

    ***__ ***__ ****_
    **___ ****_ ***__
    ***__ **___ ****_
    ****_ ****_ **___
    *____ *____ ****_
    ****_ ****_ ***_

    Здесь "*" - случайный символ от A до Z
    "_" - пробел


    ТО есть в данном случае должна получиться таблица из 6 строк, 3 столбцов, ячейка длиной 5 символов. Ячейка заполнена на случайное количество случайных символов.

    А это моя попытка:

    Код (Text):
    #include <conio.h>
    #include <iostream.h>
    #include <math.h>

    #define k 2 //минимальная длина слова (ячейки)
    #define l 7 //максимальная длина слова (ячейки)
    #define m 20 //строки
    #define n 10 //столбцы

    int rand_size(int max, int min); //объявление функции, возвращающей //случайное целое чило с заданным диапазоном


    void main()
    {
    char
    array[m][n],
    word[l];

    int
    i1,i2,i3,x;

    randomize();
    clrscr();
    //Заполняем массив
    for (i1=0;i1<m;i1++)
    {
    for (i2=0;i2<n;i2++)
    {
    x=rand_size(l,k); //возвращаем случайную длину слова
    //от 2(k) до 7(l)
    for (i3=0;i3<l;i3++)
    {
    if (i3<x) //если слово не заполнено по длине
    {
    word[i3]=(char)(random(26)+65);
    array[i1][i2]=word[i3];
    }
    else //иначе заполняем остаток слова пробелами
    {
    word[i3]=(char)(32);
    array[i1][i2]=word[i3];
    }
    }
    }
    }


    //пытаемся вывести тепрь на экран таблицу из 20 строк, 10 столбцов
    //заполненную словами длиной от 2 до 7 случайных символов.
    for (i1=0;i1<m;i1++)
    {
    for (i2=0;i2<n;i2++)
    {
    cout<<array[i1][i2]<<" ";
    }
    cout<<endl;
    }


    getch();
    }
    //Функция возвращает случайное число с заданным диапазоном
    int rand_size(int max, int min)
    {
    int
    size;
    label_1:
    size=random(max+1);
    if ((size>=min)&&(size<=max))
    {
    return size;
    }
    else
    {
    goto label_1;
    }
    }
    Это попытка конечно же не удачная, пожалуйста посодейтсвуйте 1-курснику.

    С уважением, Ярослав.
     
  2. gamecreator

    gamecreator Гость

    создай 3-мерный символьный массив.

    а вместо
    Код (Text):
    size=random(max+1);
    if ((size>=min)&&(size<=max))
    {
    return size;
    }
    else
    {
    goto label_1;
    }
    напиши
    Код (Text):
    size=min+random(max-min+1);
     
  3. chagin_yav

    chagin_yav Гость

    "создай 3-мерный символьный массив."

    - в условии задачи поставлена цель - создать два массива - двухмерный и одномерный
     
  4. gamecreator

    gamecreator Гость

    ты неправильно понял условие. прочитай еще раз.
    следовательно 2+1=3
     
Загрузка...
Похожие Темы - Массивы символов C++
  1. Искушенный
    Ответов:
    0
    Просмотров:
    430
  2. Искушенный
    Ответов:
    1
    Просмотров:
    417
  3. Искушенный
    Ответов:
    1
    Просмотров:
    384
  4. Rpp
    Ответов:
    1
    Просмотров:
    809
  5. romanovbadboy2
    Ответов:
    0
    Просмотров:
    669
Статус темы:
Закрыта.

Поделиться этой страницей