Форум программистов, компьютерный форум CyberForum.ru

Массивы и циклы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Олимпиадная задача по программированию http://www.cyberforum.ru/cpp-beginners/thread671351.html
Помогите написать программу для решения следующей задачи (из Всесибирской Открытой Олимпиады Школьников по информатике за 2011-2012 года): Имя входного файла: input.txt Имя выходного файла: output.txt Ограничение по памяти: 256 Мб Задача 1. Сколько пятниц? Ограничение по времени на 1 тест: 1 сек. Сегодня 27 ноября 2011 года. Это воскресенье. А нас интересуют пятницы. Необходимо
C++ Почему программа не отрывает поток для ввода данных? Всем привет! Программа описывает структуру для дробей, в которой хранятся соответственно числитель и знаменатель. В ходе выполнения программы мы определяем две переменные типа Дробь, потом предлагаем пользователю ввести их значения в формате (числитель/знаменатель), знак "/" обязателен. Проблема в том, что после ввода первой дроби, cin не предлагает ввести вторую. У кого есть идеи как бороться... http://www.cyberforum.ru/cpp-beginners/thread671345.html
Парсинг сайта на ASP C++
Здравствуйте. Появилась идея сделать клиентское приложение для сайта на ASP. Вот собственно и он: http://lic6.lanta-net.ru/login1.asp Хотел бы узнать - как на C++ (хотя можно и на других языках) можно заполнить графы и послать сообщение для авторизации, после чего получить код странички после авторизации? Гугл молчит как партизан, кроме скромной заметки, намекающей на то что нужно не парсить...
C++ Игра с фишками. Что не так в моем коде?
Важной частью игры является проверка того, что можно ли соединить две фишки путем, удовлетворяющим следующим свойствам: 1) Путь должен состоять из отрезков вертикальных и горизонтальных прямых. 2) Путь не должен пересекать других фишек. При этом часть пути может оказаться вне доски. X - означает, что клетка занята фишкой. . (точка) - означает, что клетка пустая. Фишки с координатами...
C++ Удаление символа в строке http://www.cyberforum.ru/cpp-beginners/thread671319.html
Помогите пожалуйста, вот программа: #include <iostream> using namespace std; int main() { int k; cin >> k; int a=0;
C++ Поиск минимума методом трихотомии Здравствуйте! Написал, но почему-то не работает. Подскажите пожалуйста что тут не так? Метод трихотомии - деление на три, аналог метода дихотомии (деление на два). Или то что я нахожу f1 и f2 - уже не правильно? #include <conio.h> #include <math.h> #include <iostream> using namespace std; double f(double x) { подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
15.10.2012, 00:29     Массивы и циклы
Цитата Сообщение от damnare Посмотреть сообщение
Как бЭ если задать строго что массив трехмерный допустим, все легко и просто, делаешь кучу переменных для считывания суммы каждой строки и столбца (благо с диагоналями попроще) и вуаля - сравниваешь - будет работать. Но как сделать чтобы не зависело это дело от размерности? Думал сделать как то через массив - строку (для каждого элемента строки суммируется определенная строка исходного массива) но все же не представляю как это сделать не зная заранее размерности исходной матрицы... может кто подскажет?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
using namespace std;
 
 
template<typename T, int N>
bool IsMagicMatrix(T (&pArr)[N][N]){
    T summ=0, tempsumm=0; bool IsMagic=true;
    for (int i=0;i<N;i++){
        summ+=pArr[0][i];
    }
    for(int i=1;i<N;i++){
        tempsumm=0;
        for(int j=0;j<N;j++){
            tempsumm+=pArr[i][j];
        }
        if(tempsumm!=summ) return false;
    }
    
    for(int i=0;i<N;i++){
        tempsumm=0;
        for(int j=0;j<N;j++){
            tempsumm+=pArr[j][i];
        }
        if(tempsumm!=summ) return false;
    }
    tempsumm=0;
    for(int i=0;i<N;i++){
        tempsumm+=pArr[i][i];       
    }
    if(tempsumm!=summ) return false;
    tempsumm=0;
    for(int i=0;i<N;i++){
        tempsumm+=pArr[i][(N-1)-i];     
    }
    if(tempsumm!=summ) return false;
 
    return IsMagic;///////////////////
}
 
 
 
int main(){
    int mas[3][3]={
    {2,7,6},
    {9,5,1},
    {4,3,8}};
 
    cout<<IsMagicMatrix(mas);
 
 
    cout<<endl;
    system("pause");
    return 0;
}

Функция IsMagicMatrix возвращает TRUE если матрица является магическим квадратом, иначе FALSE. В качестве аргумента принимает ссылку на массив. Развернул каждый цикл по отдельности, чтобы было понятнее.
Поэксперементируете все ли работает корректно.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru