Получить матрицу по правилу - C (СИ) (78487)
Формулировка задачи:
Дана квадратичная матрица B порядка m.Получить матрицу (C+B)^3 , где С единичная матрица порядка m.
язык си
Должен быть динам.массив и массив заполняется с клавиатуры.
Сделать считывание(записи) исходных данных из файла(в файл)
Имя файла должно спрашиваться у пользователя.
Как бы начало кода дальше не пойму как сделать
Дальше как чтобы получалась необходимая матрица и работа с файлами?
#include <stdio.h> #include <conio.h> #include <locale.h> int main() { setlocale(LC_ALL,"Rus"); int irow, icol, n; float sum; printf("Введите порядок матрицы\n"); printf("n = "); scanf("%u", &n); float A[n][n], E[1][1]; printf("Введите матрицу A: \n"); for(irow = 0; irow < n; irow++) for(icol = 0; icol < n; icol++) { printf("A[%d][%d] = ", irow, icol); scanf("%f", &A[irow][icol]); } getch(); }
#include <iostream> #include <conio.h> #include <locale.h> using namespace std; int main () { setlocale(LC_ALL,"Rus"); int n; printf("Введите порядок матрицы\n"); printf("n = "); scanf("%u", &n); int E[1][1]; int A[n][n]; //объявляем массив целого типа int i,j; //переменные для цикла for (i = 0; i < n ; i++) for (j = 0; j < n ; j++)//цикл ввода массива { cout<<"X["<<i<<","<<j<<"] = "; //На экран выводится 'X[i][j] = ' cin>>A[i][j]; //вводим с клавиатуры целые числа } printf("\n"); //Переход на следующую строку for (i = 0; i < n ; i++) //цикл вывода массива { printf("\n"); //Переход на следующую строку for (j = 0; j < n ; j++) { printf("X[%d][%d] = %d\t", i, j, A[i][j]); //На экран выводится результат нашего ввода } } getch(); //Экран не закрывается, пока не нажата любая клавиша }
Решение задачи: «Получить матрицу по правилу»
textual
Листинг программы
char c; m1:switch(c) { case '1': for (i = 0; i < n ; i++) { for (j = 0; j < n ; j++) { printf("A[%d][%d]: ", i, j); scanf("%d", &a[i][j]); } } break; case '2': for (i = 0; i < n ; i++) { for (j = 0; j < n ; j++) { fscanf(f1,"%d",&a[i][j]); } } break; default: puts("wrong trigger. repeat please."); goto m1; break; }
Объяснение кода листинга программы
В этом коде представлена программа, которая сначала запрашивает у пользователя ввод числа от 1 до 6, а затем выполняет определенные действия в зависимости от введенного числа.
В начале объявлены три переменные: c
типа char, i
и j
типа int. Затем в блоке switch/case происходит следующее:
- Если пользователь ввел '1', программа переходит к блоку кода внутри case '1'. Здесь используется два вложенных цикла for для прохода по всем элементам матрицы
a
. В каждой итерации внутреннего цикла выводится сообщениеA[%d][%d]:
и пользователю предлагается ввести значение для соответствующего элемента матрицы. Значение затем сохраняется в переменнойa[i][j]
. - Если пользователь ввел '2', программа переходит к блоку кода внутри case '2'. Здесь также используется два вложенных цикла for для прохода по всем элементам матрицы
a
. Вместо использования функции scanf для ввода значений, здесь используется функция fscanf, которая считывает числа из файлаf1
. Значение затем сохраняется в переменнойa[i][j]
. - Если пользователь ввел любое другое число, программа переходит к блоку кода в блоке default. Здесь выводится сообщение
wrong trigger. repeat please.
и программа возвращается к началу программы с помощью команды goto m1. Таким образом, программа позволяет пользователю вводить числа и сохранять их в матрицеa
. Если пользователь вводит что-то некорректное, программа сообщит об ошибке и попросит повторить ввод.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д