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

В каждой строке матрицы элемент, лежащий на главной диагонали заменить суммой ранее расположенных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Считать текст из файла и вывести на экран все слова текста, начинающиеся с гласной буквы http://www.cyberforum.ru/cpp-beginners/thread401695.html
Напиcать программу, которая считывает текст из файла и выводит на экран все слова текста, начинающиеся с гласной буквы, меняя ее на прописную букву. Добавлено через 7 минут #include <iostream.h> #include <string.h> #include<fstream.h> #include <conio.h> int main () { const int l=150; char *text;
C++ передать массив в функцию по значению Подскажите,пожалуйста. Нужно с клавиатуры ввести число строк-столбцов ( т е они меняются в зависимости от условия) и передать массив в функцию. Сам массив не меняется в функции. Как его объявить в обращении и заголовке? http://www.cyberforum.ru/cpp-beginners/thread401692.html
Считывание и запись в файл C++
Доброго времен суток всем экпспертам в области С++ Имеется задания нужно записать числа(псевдослучайные) в текстовый файл "vvod" и отрицательные числа заменить на ноль и вывести в следующий файл "vivod" ! Я смог только в файл записать эти числа. Прошу помощи в хотя-бы в поиске и замене! #include <iostream> #include <fstream> #include <time.h> using namespace std; ofstream fp;
C++ подскажите как правильно записать
Суть в чем, нужно текст последовательно циклически сдвинуть на m / 2 позиций, и построить новые m / 2 − 1 строк. Например в С++ это просто реализовать через append: for (int i=1; i<10; i++){ string str; str.append(string,i,len-i); str.append(string,0,i); } но как правильно тоже самое записать на Си? >< Подскажите что-нибудь, а то я уже запуталась :) не знаю, может я и...
C++ 4 задачи по основам программирования http://www.cyberforum.ru/cpp-beginners/thread401686.html
Задание 1. Составить блок-схему и программу нахождения произведения всех членов арифметической прогрессии от 10 до 30 с шагом 1,15 Задание 2. Изображение Задание 3. Дана матрица А(n,m). Получить новую матрицу путём деления всех элементов исходной матрицы на элемент, наименьший по модулю. Задание 4. Дан одномерный массив из 10-ти чисел. Определить номер первого из встретившихся...
C++ используя только символьный вывод printf, вывести значение целой переменной k используя только символьный вывод, то есть функцию printf ("% c", s), где s - переменная типа char, вывести значение целой переменной k. (знак "+" не выводить) подробнее

Показать сообщение отдельно
PHOENIX_UA
3 / 3 / 2
Регистрация: 08.12.2011
Сообщений: 5
08.12.2011, 18:23     В каждой строке матрицы элемент, лежащий на главной диагонали заменить суммой ранее расположенных
Код к первой задаче:

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#include <ctype.h>
#include <math.h>
#include <stdio.h>
 
#define ROWS 3
#define COLS 4
 
#define INPUT_FILE "D:\\in.txt"
#define OUTPUT_FILE "D:\\out.txt"
 
int GetInteger(FILE * f, int * num);
 
int ReadMatrix(FILE * f, int arr[][COLS], int rows, int cols);
void PrintMatrix(FILE * f, const int arr[][COLS], int rows, int cols);
void ProcessMatrix(int arr[][COLS], int rows, int cols);
 
int IsSimpleNumber(int number);
 
int main(void)
{
    int matrix[ROWS][COLS] = {0};
 
    FILE * fin, * fout;
 
    fin = fopen(INPUT_FILE, "rt");
 
    if (fin != NULL) {
        if (!ReadMatrix(fin, matrix, ROWS, COLS)) {
            printf("Too few valid numbers in file.\n");
            return 1;
        }
        else {
            fout = fopen(OUTPUT_FILE, "wt");
            fprintf(stdout, "BEFORE:\r\n");
            PrintMatrix(stdout, matrix, ROWS, COLS);
            if (fout != NULL) {
                fprintf(fout, "BEFORE:\r\n");
                PrintMatrix(fout, matrix, ROWS, COLS);
            }
            ProcessMatrix(matrix, ROWS, COLS);
            fprintf(stdout, "AFTER:\r\n");
            PrintMatrix(stdout, matrix, ROWS, COLS);
            if (fout != NULL) {
                fprintf(fout, "AFTER:\r\n");
                PrintMatrix(fout, matrix, ROWS, COLS);
                fflush(fout);
                fclose(fout);
            }
        }
        fclose(fin);
    }
 
    return 0;
}
 
int GetInteger(FILE * f, int * num)
{
    char ch;
    int sign = 1;
    int result = 0;
 
    if (num != NULL) {
 
        do {
            while (((ch = fgetc(f)) != EOF) && isspace(ch))
                ;
 
            if ((ch == '-') || (ch == '+')) {
                sign = (ch == '-') ? -1 : 1;
                ch = fgetc(f);
            }
 
            while ((ch != EOF) && isdigit(ch)) {
                result = result * 10 + (ch - '0');
                ch = fgetc(f);
            }
            if ((ch != EOF) && !isspace(ch)) {
                result = 0;
                while (((ch = fgetc(f)) != EOF) && !isspace(ch))
                    ;
            }
            else {
                *num = result * sign;
                return 1;
            }
        }
        while (ch != EOF);
 
    }
 
    return 0;
}
 
int ReadMatrix(FILE * f, int arr[][COLS], int rows, int cols)
{
    int i, j;
    int num;
 
    if (f == NULL) {
        return 0;
    }
 
    for (i = 0; i < rows; i++) {
        for (j = 0; j < cols; j++) {
            if (GetInteger(f, &num)) {
                arr[i][j] = num;
            }
            else {
                return 0;
            }
        }
    }
 
    return 1;
}
 
void PrintMatrix(FILE * f, const int arr[][COLS], int rows, int cols)
{
    int i, j;
 
    if (f != NULL) {
        for (i = 0; i < rows; i++) {
            for (j = 0; j < cols; j++) {
                fprintf(f, "%-10d", arr[i][j]);
            }
            fprintf(f, "\r\n");
        }
    }
}
 
int IsSimpleNumber(int number) {
    int i;
    int mid;
    number = abs(number);
    mid = sqrt(number);
 
    if (number % 2) {
        for (i = 3; i < mid; i += 2) {
            if (number % i == 0) {
                return 0;
            }
        }
    }
    else {
        return 0;
    }
 
    return 1;
}
 
void ProcessMatrix(int arr[][COLS], int rows, int cols)
{
    int i, j;
    int sum;
 
    for (i = 0; i < rows; i++) {
        if (IsSimpleNumber(arr[i][i])) {
            sum = 0;
            for (j = 0; j < i; j++) {
                sum += arr[i][j];
            }
            arr[i][i] = sum;
        }
    }
}
Программа читает из файла в массив целые числа вида 123, -123, +123 и умеет игнорировать некорректные данные, например 12s3 и т.п.
 
Текущее время: 23:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru