Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2016, 22:11   #11
DFrost
 
Регистрация: 28.10.2016
Сообщений: 9
По умолчанию

Из языка здесь только: рекурсивный вызов функции, конструкции if, for и ввод/вывод (cout/cin).
А откуда упражнения берёшь?
DFrost вне форума Ответить с цитированием
Старый 23.11.2016, 00:18   #12
taina1976
Пользователь
 
Регистрация: 22.10.2016
Сообщений: 18
По умолчанию

Помогите найти ошибку!
Столбец массива

Задан двухмерный целочисленный массив. Вывести элементы заданного столбца в прямом порядке.


Во входном потоке в первой строке задано натуральное число N (N < 100) - Количество строк и столбцов квадратного массива и натуральное число C - номер выводимого столбца.
В последующих N строках по N целых чисел - значения элементов массива, Значения элементов массива по модулю не превышают 32000.

В выходной поток вывести в столбик значения элементов заданного столбца массива.

Пример входного файла (input.txt):
5 4
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
3 2 3 4 5
1 2 3 4 5
Пример выходного файла (output.txt):
4
4
4
4
4
Код:
#include <iostream>
#include <cmath>
#include <cstdio>

using namespace std;

int main()
{
    int n,c;
scanf("%d",&n);
scanf("%d",&c);
int m[n][n];
for(int i=0;i<n;i++)

    for(int j=0;j<n;j++)

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

    for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)
        if (j=c)
        printf("%d\n",m[i][c-1]);

printf("\n");
    return 0;
}
По моему коду и этому примеру 4 и5 столбец выводятся, а первые три нет.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 23.11.2016 в 09:37.
taina1976 вне форума Ответить с цитированием
Старый 23.11.2016, 00:22   #13
taina1976
Пользователь
 
Регистрация: 22.10.2016
Сообщений: 18
По умолчанию

Цитата:
Сообщение от DFrost Посмотреть сообщение
Из языка здесь только: рекурсивный вызов функции, конструкции if, for и ввод/вывод (cout/cin).
А откуда упражнения берёшь?
На сайте "ЮНый программист" есть эти задания.
taina1976 вне форума Ответить с цитированием
Старый 23.11.2016, 08:15   #14
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Код:
if (j==c)
ну, и зачем вам вложенный цикл по j, когда вам нужно только j == c? Может оставить один цикл по i?
И если j оставлять, то равенство должно быть таким: j == c - 1
pu4koff вне форума Ответить с цитированием
Старый 23.11.2016, 09:26   #15
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Куда еще проще... там только вывод и деление.
p51x вне форума Ответить с цитированием
Старый 23.11.2016, 17:47   #16
taina1976
Пользователь
 
Регистрация: 22.10.2016
Сообщений: 18
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Код:
if (j==c)
ну, и зачем вам вложенный цикл по j, когда вам нужно только j == c? Может оставить один цикл по i?
И если j оставлять, то равенство должно быть таким: j == c - 1
Спасибо!
taina1976 вне форума Ответить с цитированием
Старый 10.12.2016, 23:23   #17
taina1976
Пользователь
 
Регистрация: 22.10.2016
Сообщений: 18
По умолчанию

Помогите найти ошибку!
Сумма цифр
Вычислить сумму всех цифр заданного натурального числа.
В единственной строке входного потока записано единственное натуральное число n (n <= 101000).
В выходной поток вывести единственное натуральное число - сумму цифр заданного числа.
Пример входного файла: 1238
Пример выходного файла:14
Код:
#include <iostream>

using namespace std;

int main()
{
    int n,sum=0,t=1;
 cin>>n;
    char stroka[256];

    for(int i=0;i<n;i++)
    {
        while(n!=0)
        {
            t=n%10;
             n=(n-t)/10;
            sum=sum+t;

        }
    }
    cout<< sum;
    return 0;
}
По моему коду сумма первых десяти чисел считает правильно, а если больше 10, то нет.
taina1976 вне форума Ответить с цитированием
Старый 11.12.2016, 00:16   #18
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Потому что в тип int не помещается число больше 2147483647 )
Можешь взять тип unsigned long long, в него поместится до 2^20-1. Если нужно больше - читай число как строку, и суммируй символы руками.

P. S. И да, зачем в этом коде внешний цикл? )
Son Of Pain вне форума Ответить с цитированием
Старый 11.12.2016, 00:49   #19
taina1976
Пользователь
 
Регистрация: 22.10.2016
Сообщений: 18
По умолчанию

А как правильно считать число как строку?
taina1976 вне форума Ответить с цитированием
Старый 11.12.2016, 00:56   #20
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от taina1976 Посмотреть сообщение
А как правильно считать число как строку?
Код:
char buf[ 200 ], *p = buf;
cin >> buf;
unsigned sum = 0;
while( *p )
   sum += *p++ - '0';
olej.tsil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Язык C]: В массиве числа образуют неубывающую последовательность. Найти количество различных чисел в массиве. Помогите найти ошибку. Yulia24* Помощь студентам 0 18.10.2016 20:41
Дан массив а(n) типа SWORD. найти сумму всех отрицательных элементов массива.помогите найти ошибку Юлия123456 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 07.09.2016 06:12
Помогите найти ошибку AmaPC HTML и CSS 0 15.11.2015 19:39
Найти седловые точки в матрице(помогите найти ошибку) - pascal tdsotm Помощь студентам 0 20.11.2014 18:57
Помогите найти ошибку - StrToFloat выдаёт ошибку EConvertError для ячеек StringGrid (Delphi) Artsiom Помощь студентам 10 18.12.2013 14:10