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

Поиск:

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


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.12.2012
Где: москва

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



Вводится матрица чисел. Вывести на экран ее след без использования массивов.
Я только начала изучать программирование, помогите пожалуйста с задачей, очень прошу!

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{int i, j, n, s, a;
int s=0;
for (j=1; j<=3; j=j+1);
{for (i=1; i<=3; i=i+1);

scanf ("%d ", &n);}
if ((i==1)&&(j==1)) a=n;

Что дальше не знаю...
PM MAIL   Вверх
Gluttton
Дата 15.12.2012, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Если я правильно понял задание, то возможно это будет решение?

Код

#include "stdafx.h"


int _tmain (int argc, _TCHAR* argv[])
{
    int i = 0;  // Счетчик для обхода столбцов матрицы.
    int j = 0;  // Счетчик для обхода строк матрицы.
    int n;      // Переменная для хранения введенных пользователем значений.
    int s = 0;  // След матрицы.

    // Организовываем цикл по столбцам матрицы.
    for (i = 0; i < 3; ++i) {
        // Организовываем цикл по строкам матрицы.
        for (j = 0; j < 3; ++j) {
            // Получаем от пользователя значение текущей ячейки матрицы,
            // лежащей на пересечении i-го столбца и j-строки.
            scanf ("%d ", &n);
            // Если текущая ячейка лежит на главной диагонали матрицы.
            if (i == j) {
                // То добавляем значение ячейки к накопленной величине следа матрицы.
                s += n;
            }
        }
    }
}



--------------------
Слава Україні!
PM MAIL   Вверх
kristinia
Дата 15.12.2012, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.12.2012
Где: москва

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



Я ввожу, например, матрицу из чисел 123123123... И потом он должен писать сумму диагонали, то есть в данном случае 6
Первую часть вы написали правильно...только вот потом, мне кажется,  надо задать при i=1 и j=1 такое-то значение..., при i=2 и j=2 такое-то..., i=3 и j=3 ... и потом написать выражение суммы присвоенных значений

Это сообщение отредактировал(а) kristinia - 15.12.2012, 20:52
PM MAIL   Вверх
Gluttton
Дата 15.12.2012, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Цитата(kristinia @  15.12.2012,  20:46 Найти цитируемый пост)
 надо задать при i=1 и j=1 такое-то значение..., при i=2 и j=2 такое-то..., i=3 и j=3

Ну так я и пишу же:
Код

            // Если текущая ячейка лежит на главной диагонали матрицы.
            if (i == j) {

Когда i будет равно j?


Цитата(kristinia @  15.12.2012,  20:46 Найти цитируемый пост)
и потом написать выражение суммы присвоенных значений

Правильно, ниже же я и пишу:
Код

                // То добавляем значение ячейки к накопленной величине следа матрицы.
                s += n;


Т.е. есть некоторая сумма, которая инициализированна нулем, к которой мы прибавляем значение ячейки на пересечении столбца 1 и строки 1, потом к ней прибавляем значение ячейки на пересечении столбца 2 и строки 2, а затем прибавляем значение ячейки на пересечении столбца 3 и строки 3.

Осталось вывсести на печать значение переменной s.


--------------------
Слава Україні!
PM MAIL   Вверх
kristinia
Дата 15.12.2012, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.12.2012
Где: москва

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



это замечательно, но почему у меня сумма не выводится, просто вводится матрица?
PM MAIL   Вверх
Gluttton
Дата 15.12.2012, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Цитата(kristinia @  15.12.2012,  21:44 Найти цитируемый пост)
но почему у меня сумма не выводится, просто вводится матрица? 


Цитата(Gluttton @  15.12.2012,  21:31 Найти цитируемый пост)
Осталось вывсести на печать значение переменной s. 


!?


--------------------
Слава Україні!
PM MAIL   Вверх
kristinia
Дата 15.12.2012, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.12.2012
Где: москва

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



printf ("%d", s) дописать?)

Добавлено через 57 секунд
Так не получается же
PM MAIL   Вверх
Gluttton
Дата 15.12.2012, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Цитата(kristinia @  15.12.2012,  21:48 Найти цитируемый пост)
printf ("%d", s) дописать?) 


Помоему было бы быстрее попробовать, чем спрашивать smile .
Да, допишите.

Добавлено через 2 минуты и 13 секунд
Цитата(kristinia @  15.12.2012,  21:48 Найти цитируемый пост)
Так не получается же 


Что именно?


--------------------
Слава Україні!
PM MAIL   Вверх
kristinia
Дата 15.12.2012, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.12.2012
Где: москва

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



Конечно, я пробовала, но не получается :( не выводится

Это сообщение отредактировал(а) kristinia - 15.12.2012, 21:54
PM MAIL   Вверх
Gluttton
Дата 15.12.2012, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Вот такой код у меня:

Код

#include <stdio.h>


int main (int argc, char * argv [])
{
    int n;
    int s = 0;

    for (unsigned int i = 0; i < 3; ++i) {
        for (unsigned int j = 0; j < 3; ++j) {
            scanf ("%d", &n);
            if (i == j) {
                s += n;
            }
        }
    }
    printf ("%d\n", s);

    return 0;
}


И вот такой у меня результат работы программы:
Цитата

1
2
3
1
2
3
1
2
3
6



Цитата(kristinia @  15.12.2012,  21:54 Найти цитируемый пост)
Конечно, я пробовала, но не получается :( не выводится


Что не выводится? Вообще ничего не выводиться? Или значение не верное?


--------------------
Слава Україні!
PM MAIL   Вверх
kristinia
Дата 15.12.2012, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.12.2012
Где: москва

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



Аха, я, конечно, не блондинка, я вводила в три строки, а не каждую цифру на отдельной строчке:) Как мне сделать, чтобы так вводить? 123 на одной, на второй и на третьей?smile

Добавлено через 5 минут и 9 секунд
А что такое unsigned int? нам про такое не рассказывали и что значит ++i,  я писала i=i+1
PM MAIL   Вверх
Gluttton
Дата 15.12.2012, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Цитата(kristinia @  15.12.2012,  22:04 Найти цитируемый пост)
я вводила в три строки

Вы не в три строки вводили, а вводили три раза число сто двадцать три.


Цитата(kristinia @  15.12.2012,  22:04 Найти цитируемый пост)
Как мне сделать, чтобы так вводить? 123 на одной, на второй и на третьей?

В данной версии приложения - никак, т.к. количество запросово определено явно:
Код

    for (i = 0; i < 3; ++i) {
        // Организовываем цикл по строкам матрицы.
        for (j = 0; j < 3; ++j) {

Т.е. программа будет 3 * 3 = 9 раз ожидать ввод числа.


Если есть такое дикое, то можно реализовать ввод матрицы построчно, но тогда прийдется читать со входа строку и посимвольно ее разбирать на числа, при этом проверяя, что пользователь ввел необходимое количество чисел и нигде не написал букву вместо цифры и не пропустил разделитель (запятая, пробел или еще что-нибудь).


--------------------
Слава Україні!
PM MAIL   Вверх
kristinia
Дата 15.12.2012, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.12.2012
Где: москва

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



Я надеюсь, вы еще здесь

Добавлено через 8 минут и 30 секунд
 С одной стороны, это все логично и просто,  а с другой, надо шевелить мозгом. Спасибо большое!  smile 
PM MAIL   Вверх
Gluttton
Дата 15.12.2012, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Цитата(kristinia @  15.12.2012,  22:15 Найти цитируемый пост)
Спасибо большое! 


Пожалуйста!

Если желание вводить матрицу построчно, а не посимвольно не проподет, то предлагаю погуглить на темы:
C++ string split
C++ string to int

И посмотреть, какие уже есть готовые решения. Например у boost'a есть готовый spliter строк.


--------------------
Слава Україні!
PM MAIL   Вверх
kristinia
Дата 15.12.2012, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.12.2012
Где: москва

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



 smile Обязательно посмотрю. Хотя моя специальность далека от программирования, дальше будем изучать массивы. Можете посоветовать какой-нибудь хорошей доступной литературы на данные темы?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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