Официальный сайт студ.городка НГТУ
Программирование и БД » Создание двумерного массива типа char 

#1  27.05.11 17:35

Создание двумерного массива типа char

вообщем пытаюсь создать массив S[25][80] к примеру... и заполнить его случайными значениями

делаю так:

Код::

....
cout<<"Введите кол-во символов в строке(m): ";cin>>m;
cout<<"Введите кол-во строк(n): ";cin>>n;

//Вот при заполнении возникают проблемы...

for (i=0;i<=m-1;i++)
    for(j=0;j<=n-1;j++)
        S[i][j]=65+random(26);
S[m][n]='\0';

cout<<"Array S: "<<endl;
cout<<S;

....

Выводит мусор кароче...

Offline

#2  27.05.11 18:58

Re: Создание двумерного массива типа char

Мусор положил мусор вывел

Offline

#3  27.05.11 19:50

Re: Создание двумерного массива типа char

onibaka,  ну может напишешь как правиильно? Смысл было это говорить...

Offline

#4  27.05.11 22:01

Re: Создание двумерного массива типа char

Ну что именно то правильно?
Выводи по одному символу в цикле как заполняешь.

Offline

#5  27.05.11 22:06

Re: Создание двумерного массива типа char

Код::

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

void main ()
{
	int m, n;
	char **S;
	//char S[m][n];
	printf ("Enter number of columns (m): ");
	scanf ("%d", &m);
	printf ("\nEnter number of rows (n): ");
	scanf ("%d", &n);
	S=new char* [n];
	for (int i=0; i<n; i++)
		S[i]=new char [m];
	for (int i=0; i<n; i++)
		for (int j=0; j<m; j++)
			S[i][j]=65+rand()%26;

	printf ("\nArray S:\n");
	for (int i=0; i<n; i++)
	{
		for (int j=0; j<m; j++)
			printf ("%c", S[i][j]);
		printf ("\n");
	}

	getch ();
}

Результат работы программы:
Enter number of columns (m): 10

Enter number of row (n): 10

Array S:
PHQGHUMEAY
LNLFDXFIRC
VSCXGGBWKF
NQDUXWFNFO
ZVSRTKJPRE
PGGXRPNRVY
STMWCYSYYC
QPEVIKEFFM
ZNIMKKASVW
SRENZKYCXF

Исправлено Mellon (27.05.11 22:19)

Offline

#6  29.05.11 22:49

$up
Профиль

Re: Создание двумерного массива типа char

просто нужно каждую строку нулём завершать было, а не только последнюю.

Offline

#7  30.05.11 16:35

Re: Создание двумерного массива типа char

$up, зачем? В моем коде вообще ни одна строка на завершается нулем. \0 - это признак конца строки, необходимый, если неизвестна размерность массива, а если известна, то я не вижу в нем смысла.

Offline

#8  30.05.11 20:03

Re: Создание двумерного массива типа char

Mellon, уверена что разумна тыкать Супа в код? он тут наверное всех за пояс заткнет:)

Offline

#9  30.05.11 21:04

Re: Создание двумерного массива типа char

Flinn написал(а):

Mellon, уверена что разумна тыкать Супа в код? он тут наверное всех за пояс заткнет:)

так ***здеть не мешки ворочать.

Offline

#10  30.05.11 23:01

Re: Создание двумерного массива типа char

Mellon написал(а):

зачем? В моем коде вообще ни одна строка на завершается нулем. \0 - это признак конца строки, необходимый, если неизвестна размерность массива, а если известна, то я не вижу в нем смысла.

Затем, что вывод массива строк ты бы написала не двумя вложенными циклами, а одним. И да - многие функции, работающие с char* строками требуют '\0' окончания.

Offline

#11  30.05.11 23:13

Re: Создание двумерного массива типа char

Flinn, я уверена, что могу обсудить здесь вопросы программирования, собственно для чего и создавался форум. И я всего лишь высказала свою точку зрения, а о своих способностях в программировании я хорошо знаю, а вот про товарища $up ничего определенного. Я не знаю кто из вас тут гуру программирования) Вот Revenger взял да и объяснил. Я не против, чтобы мне указали на мои ошибки) И никого я не тыкала...нормальный такой диалог...типа, спуститесь с небес к простым смертным))

Исправлено Mellon (30.05.11 23:25)

Offline

#12  02.06.11 18:40

$up
Профиль

Re: Создание двумерного массива типа char

Mellon, мой комментарий относился к коду топикстартера. Давно не заходил сюда, поэтому не видел заданного мне вопроса. Добавить к ответу  Revenger нечего.

Offline

Программирование и БД » Создание двумерного массива типа char 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.170 сек.
Выполнено 14 запросов.