Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181

Нахождение суммы диагональных элементов квадратной матрицы N x N

03.06.2013, 00:42. Показов 1995. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, которая найдет сумму диагональных элементов квадратной матрицы N x N. Матрица находится в текстовом файле вида
4 6 7
4 7 90
34 5 7
язык С++
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.06.2013, 00:42
Ответы с готовыми решениями:

Написать функцию вычисления суммы диагональных элементов заданной квадратной матрицы
Пусть пользователь вводит динамическую матрицу размером NxN. Написать функцию для вычисления суммы диагональных элементов. Помогите...

Функция: нахождение суммы положительных элементов квадратной матрицы и сортировка главной диагонали
создать функцию нахождения суммы положительных элементов квадратной матрицы и сортировка главной диагонали

Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов
Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов.с++

10
 Аватар для serggg
77 / 52 / 32
Регистрация: 24.03.2013
Сообщений: 1,121
03.06.2013, 10:51
Вы хотите, чтобы Вам полностью написали программу?
0
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
03.06.2013, 11:36  [ТС]
Да, думаю, достаточно будет, если вы объясните как считать из файла диагональные элементы матрицы. Да, забыл сказать, массивы использовать нельзя. Единственное, что я смог придумать, это ввести два счетчика и идти по всему файлу. При этом один будет увеличиваться при перемещении по строке и сбрасываться на ноль при переходе на новуё строку, а второй при переходе на новую строку. Совпадение значений обоих счетчиков -признак диагонального элемента
0
 Аватар для serggg
77 / 52 / 32
Регистрация: 24.03.2013
Сообщений: 1,121
03.06.2013, 11:45
Вот у меня есть задача: В ней считываются строки из фала и разбиваются на слова! Потом слова переворачиваются и снова записываются в файл! Вам оттуда нужен будет только алгоритм считывания строк из файла и разбиение их на слова (каждое слово у вас это будет число). Просто нужно будет преобразовать эту строку вот так:
C++
1
2
3
4
#include <windows.h>
int x=0;
char s[10];
x=_wtoi(s);
Ну а потом складываете элементы!
И тут без массива слов - никак не обойдёшься!
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<windows.h>
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int k=0,i,j=0,ks=0;
    char fileName1[20],fileName2[20],sl[100][100],tmp[20];
    printf("Ведите название файла,в котором хранятся слова:");
    scanf("%s",fileName1);
    printf("Ведите название файла,в котором будут записаны слова наоборот:");
    scanf("%s",fileName2);
    FILE *f,*A;
//открываем исходный поток
    if (f=fopen(fileName1,"r"))
    {
        char s[100];
        A=fopen(fileName2,"w+");
//пока не считаем все строки из потока
        while(!feof(f))
        {
            fgets(s,100,f);
            i=0;
            k=0; //начало очередного слова
//пропускаем пробелы и знаки препинания в начале строки
            while(s[i]==' '||s[i]==','||s[i]=='\n')
            {
                i++;
                k=i;
            }
// разбиваем строку на слова
            for (;i<=strlen(s);i++)
            {
                if(s[i]==' '||s[i]==','||s[i]=='\n'||s[i]==0||s[i]==', ')
                {
                    strncpy(sl[j],s+k,i-k);
                    sl[j][i-k]=0;
                    k=i;
                    j++;
                    ks++;
                }
            }
            if(ks%2==0)
            {
                for(j=0;j<ks;j++)
                {
                    strcpy(tmp,sl[j]);
                    strcpy(sl[j],sl[j+1]);
                    strcpy(sl[j+1],tmp);
                    j++;
                }
            }
            else
            {
                for(j=0;j<ks-1;j++)
                {
                    strcpy(tmp,sl[j]);
                    strcpy(sl[j],sl[j+1]);
                    strcpy(sl[j+1],tmp);
                    j++;
                }
            }
                for(j=0;j<ks;j++)
                {
                    fprintf(A,sl[j]);
                    fprintf(A," ");
                }
            
        }
    }
    else puts("Ошибка открытия файла!!!");
    getch();
    fclose(A);
    fclose(f);
    return 0;
}
0
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
03.06.2013, 12:36  [ТС]
Нет, в учебнике явно требуют не использовать массивы. Во вложении страница с задачей (8 задача), внизу там прописано, что файлы нельзя использовать.
Миниатюры
Нахождение суммы диагональных элементов квадратной матрицы N x N  
0
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
03.06.2013, 12:37  [ТС]
В последнем сообщении ошибся, не файлы нельзя использовать, а массивы
0
 Аватар для serggg
77 / 52 / 32
Регистрация: 24.03.2013
Сообщений: 1,121
03.06.2013, 12:52
Ну значит, когда считал строку их файла - при разбитии её на части - отделил от неё одну часть (и преобразовал эту часть в число) и сразу проверяешь, если это не диагональный элемент - то дальше, если диагональный - суммируешь!
Следующий раз опять в эту строку считываешь!
0
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
03.06.2013, 13:03  [ТС]
Но строка это тоже массив-массив символов
0
 Аватар для serggg
77 / 52 / 32
Регистрация: 24.03.2013
Сообщений: 1,121
03.06.2013, 13:05
ну сделай строку из одного символа - тогда это будет не массив символов, а один символ!
0
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
03.06.2013, 13:12  [ТС]
ну тогда, наверное, проще будет сразу в числовую переменную считывать. Я просто думал, что можно это как-нибудь с помощью метода seekg() сделать, ну типо поставить сразу указатель на диагональный элемент, а не проходить по всему файлу
0
 Аватар для serggg
77 / 52 / 32
Регистрация: 24.03.2013
Сообщений: 1,121
03.06.2013, 13:38
ну тогда, наверное, проще будет сразу в числовую переменную считывать. Я просто думал, что можно это как-нибудь с помощью метода seekg() сделать, ну типо поставить сразу указатель на диагональный элемент, а не проходить по всему файлу
а вот на счёт этого не скажу... не знаю...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.06.2013, 13:38
Помогаю со студенческими работами здесь

Для заданой квадратной матрицы сформулировать одномерный массив из ее диагональных элементов.
Помогите пожалуйста решить задачу, написав код программы в С++ Для заданой квадратной матрицы сформулировать одномерный массив из ее...

Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов
Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы, суммируя элементы...

Нахождение суммы элементов матрицы
как написать программу для решения S=\sum_{M}^{i=1}sqrt(\sum_{M}^{j=1}({a}_{y})^2) ? Я попытался сам но не уверен что правильно ...

Реализовать программу вычисления суммы элементов квадратной матрицы по заданной схеме
реализовать программу вычисления суммы элементов матрицы 15х15 (целые числа)

Нахождение суммы элементов динамической матрицы
Люди чесное слово убейте меня если это не правильно, должно вывадить сумму элементов массива! Но не работает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru