Получить матрицу по правилу - 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. Если пользователь ввел '1', программа переходит к блоку кода внутри case '1'. Здесь используется два вложенных цикла for для прохода по всем элементам матрицы a. В каждой итерации внутреннего цикла выводится сообщение A[%d][%d]: и пользователю предлагается ввести значение для соответствующего элемента матрицы. Значение затем сохраняется в переменной a[i][j].
  2. Если пользователь ввел '2', программа переходит к блоку кода внутри case '2'. Здесь также используется два вложенных цикла for для прохода по всем элементам матрицы a. Вместо использования функции scanf для ввода значений, здесь используется функция fscanf, которая считывает числа из файла f1. Значение затем сохраняется в переменной a[i][j].
  3. Если пользователь ввел любое другое число, программа переходит к блоку кода в блоке default. Здесь выводится сообщение wrong trigger. repeat please. и программа возвращается к началу программы с помощью команды goto m1. Таким образом, программа позволяет пользователю вводить числа и сохранять их в матрице a. Если пользователь вводит что-то некорректное, программа сообщит об ошибке и попросит повторить ввод.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5