Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание массива / 7 сообщений из 7, страница 1 из 1
20.10.2004, 16:01
    #32746733
Studentic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание массива
Подскажите студенту.
Задача: Ввести число. Создать массив символов (или целых чисел), где кол-во элементов = введенному числу. Заполнить массив. Вывести результат на экран.
(Команды ввода/вывода - scanf/printf).

Я написал код, но вылетает ошибка. Что я делаю не так?
Вот код:

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

int main(){
int n;
// Вводим размерность массива
printf("Enter N: \n");
scanf("%d",&n);

// Создаем массив символов
char *p = new char[n];

//Заполняем массив - здесь вылетает ошибка
for(int i=0; i<n; i++){
printf("\nEnter %d element ",i);
scanf("%c",*(p+i));
}

printf("\nPrint array!");

//выводим элементы массива на экран
for(int i=0; i<n; i++)
printf("\n%d element = %c",i,p );

// Удаляем массив
delete [] p;

//Задержка, чтобы посмотреть на результат
getch();

return 0;
}
...
Рейтинг: 0 / 0
20.10.2004, 16:33
    #32746838
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание массива
вместо
Код: plaintext
scanf("%c",*(p+i));
напиши
Код: plaintext
scanf("%c", p+i);

ведь scanf ждет от тебя адрес.
...
Рейтинг: 0 / 0
20.10.2004, 16:54
    #32746898
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание массива
да и
Код: plaintext
printf("\n%d element = %c",i,p);

это сомнительно,
видимо ожидается что-то вроде

Код: plaintext
printf("\n%d element = %c",i,*(p+i));


и вообще говорят, scanf - дурная функция :-)
...
Рейтинг: 0 / 0
20.10.2004, 17:29
    #32746996
Studentic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание массива
to Анатолий Широков
Спасибо. Ошибки нет, но теперь в блоке
//Заполняем массив
for(int i=0; i<n; i++){
printf("\nEnter %d element ",i);
scanf("%c",p+i);
}
происходит непонятное, т.е. на экране вместо
Enter 0 element появляется сразу 2 сообщения:
Enter 0 element
Enter 1 element

Затем еще 2:
Enter 2 element
Enter 3 element

Может подскажите в чем ошибка?

to --null--
Что-то произошло при копировании у меня на самом деле стоит p
а как раз printf("\n%d element = %c",i,*(p+i)
); дает неправильный результат.
...
Рейтинг: 0 / 0
20.10.2004, 17:31
    #32747002
Studentic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание массива
Куда-то деваются при коп. квадратные скобки.
не p а надо р и i в кв.скобках.
...
Рейтинг: 0 / 0
20.10.2004, 17:42
    #32747044
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание массива
StudenticКуда-то деваются при коп. квадратные скобки.
не p а надо р и i в кв.скобках.
Не куда-то. Это style code - i в квадратных скобках означает italic. Конечно, для программерских форумов это чертовски нелогичное решение :)

workaround - ставить пробелы вокруг i.
...
Рейтинг: 0 / 0
21.10.2004, 10:04
    #32747721
Siebentearbeit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание массива
swworkaround - ставить пробелы вокруг i.

надо использовать теги
Код: plaintext
[SRС c++]p[i][/SRС]
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание массива / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]