Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка scanf в двумерном массиве 
V
    Опции темы
n199a
  Дата 24.5.2013, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 17.11.2011

Репутация: нет
Всего: нет



Почему в функции scanf в ковычках записано только один раз "%d"? Я это к тому, что, как определить, куда занесется введенное мной число, в i или в j?
Код

#include <stdio.h>
const int M = 5;                     // число строк
const int N = 4;                     // число столбцов
main()
{
int i, j, A[M][N];
for ( i = 0; i < M; i ++ )           // цикл по строкам
for ( j = 0; j < N; j ++ )          // цикл по столбцам строки
{
printf ("A[%d][%d]=", i, j);    // подсказка для ввода
scanf ("%d", & A[i][j]);          // ввод A[i][j]
}

}

PM MAIL   Вверх
Фантом
Дата 24.5.2013, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 4
Всего: 49



Цитата(n199a @  24.5.2013,  21:57 Найти цитируемый пост)
Почему в функции scanf в ковычках записано только один раз "%d"? Я это к тому, что, как определить, куда занесется введенное мной число, в i или в j?

Замечательно.  smile А почему Вас не интересует, не занесется ли введенное число в A или, упаси боже, вообще в & ?
PM   Вверх
n199a
Дата 24.5.2013, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 17.11.2011

Репутация: нет
Всего: нет



Цитата(Фантом @  24.5.2013,  21:30 Найти цитируемый пост)
Замечательно.   А почему Вас не интересует, не занесется ли введенное число в A или, упаси боже, вообще в & ? 


Код

scanf ("%d", & A[i][j]);


Что к чему, в & ?!
Вообще в массив А и заносится, только в столбец или строку.

Давайте лучше без приколов, а по существу.

От второго for зависит?
Код

for ( j = 0; j < N; j ++ )

PM MAIL   Вверх
Фантом
Дата 24.5.2013, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 4
Всего: 49



Цитата(n199a @  24.5.2013,  23:08 Найти цитируемый пост)

Давайте лучше без приколов, а по существу.

Ну что ж, давайте. Откройте любой учебник по C/C++ и посмотрите форму обращения к элементу массива. Раздел, конечно, называется "для новичков", но все же даже новичок настолько элементарные вещи должен знать.

Цитата(n199a @  24.5.2013,  23:08 Найти цитируемый пост)

От второго for зависит?

Аналогично. Пересказывать тут синтаксис языка "с нуля" явно не стоит.
PM   Вверх
feodorv
Дата 25.5.2013, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(n199a @  24.5.2013,  21:57 Найти цитируемый пост)
только один раз "%d"

Вводится одно значение, соответственно, один "%d".


Цитата(n199a @  24.5.2013,  23:08 Найти цитируемый пост)
От второго for зависит?

Тут, правда, не возможно без приколов (((
А от первого? Зависит что?


Цитата(n199a @  24.5.2013,  21:57 Найти цитируемый пост)
for ( i = 0; i < M; i ++ )           // цикл по строкам
for ( j = 0; j < N; j ++ )          // цикл по столбцам строки

Здесь происходит обход всех элементов матрицы в двойном цикле. Первый цикл - обход по строкам, второй - обход по столбцам конкретной строки (см. первый цикл).
Уберите scanf из цикла, посмотрите, что будет.


Цитата(n199a @  24.5.2013,  21:57 Найти цитируемый пост)
куда занесется введенное мной число, в i или в j

Почитайте про scanf. Какие у него спецификаторы, какие соответствующие аргументы.
Почитайте про массивы в C. Что означает A[i][j], что означает &A[i][i]. И почему таки scanf ("%d", &A[i][j]) заносит введенное значение в ячейку матрицы A[i][j], как и написано в комментарии к этой строке (а значения переменных i и j как раз заданы и меняются с каждым шагом (двойного) цикла). Зачем там &. Как вывести значение ячейки матрицы на экран. Почему в printf'е уже не пишется &. И так далее. И тому подобное.


Цитата(n199a @  24.5.2013,  21:57 Найти цитируемый пост)
в i или в j

Если бы значение заносилось в i, то scanf имел бы вид:
Код
scanf ("%d", &i);
Если бы в j, то:
Код
scanf ("%d", &j);
Если бы и туда, и туда, то:
Код
scanf ("%d %d", &i, &j);



--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
kolesnle
Дата 2.6.2013, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Упертый сишник
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 22.3.2013

Репутация: нет
Всего: нет



Цитата(n199a @  24.5.2013,  22:08 Найти цитируемый пост)
&

оператор взятия адреса
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0737 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.