Не могу переделать код (использование printf и scanf вместо cout и cin) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно сделать лабораторную работу по C, но у меня вообще ничего не получается с printf и scanf, плюс разбить на отдельные функции(ввод данных, вывод). Помогите пожалуйста! Задание выглядит примерно так: Программу изменить так, чтобы: -исходные данные читались с клавиатуры; -выдача результирующих данных производилась в консоль. Вот мой код, который я написал под С++ [code]
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <iomanip>
 
using namespace std;

int main()
{
    srand(time(0)); // генерация случайных чисел
    int num;
    cin >> num;
    float *arr = new float[num];
    float **ptrarray = new float*[num]; 
    for (int count = 0; count < num; count++)
        ptrarray[count] = new float[num]; 
    // заполнение массива
    for (int count_row = 0; count_row < num; count_row++)
        for (int count_column = 0; count_column < num; count_column++)
            ptrarray[count_row][count_column] = (rand() % 100 + 1) / float((rand() % 100 + 1)); //заполнение массива случайными числами с масштабированием от 1 до 1000
    // вывод массива
    for (int count_row = 0; count_row < num; count_row++)
    {
        for (int count_column = 0; count_column < num; count_column++)
            cout << setw(4) << setprecision(2) << ptrarray[count_row][count_column] << "   ";
        cout << endl;
    }
    int i, j;
    float min;
    for (i = 0; i < num; i++)
    {
        min = ptrarray[i][0];
        for (j = 1; j < num; j++)
        {
            if (ptrarray[i][j]<min)
                min = ptrarray[i][j];
        }
        arr[i] = min;
        cout << arr[i] << " ";
    }
    //удаление из памяти
    for (int count = 0; count < num; count++) 
        delete[]ptrarray[count];
    delete[] arr;
    system("pause");
    return 0;
}

Решение задачи: «Не могу переделать код (использование printf и scanf вместо cout и cin)»

textual
Листинг программы
//#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <iomanip>
 
//using namespace std;
 
 
int main()
{
    srand(time(0)); // генерация случайных чисел
    int num;
    scanf("%d", &num);
    //cin >> num;
    float *arr = new float[num];
    float **ptrarray = new float*[num]; 
    for (int count = 0; count < num; count++)
        ptrarray[count] = new float[num]; 
    // заполнение массива
    for (int count_row = 0; count_row < num; count_row++)
        for (int count_column = 0; count_column < num; count_column++)
            ptrarray[count_row][count_column] = (rand() % 100 + 1) / float((rand() % 100 + 1)); //заполнение массива случайными числами с масштабированием от 1 до 1000
    // вывод массива
    for (int count_row = 0; count_row < num; count_row++)
    {
        for (int count_column = 0; count_column < num; count_column++)
        printf("%0.2f   ", ptrarray[count_row][count_column]);
        printf("\n");
        //cout << setw(4) << setprecision(2) << ptrarray[count_row][count_column] << "   ";
        //cout << endl;
    }
    printf("\n");
    int i, j;
    float min;
    for (i = 0; i < num; i++)
    {
        min = ptrarray[i][0];
        for (j = 1; j < num; j++)
        {
            if (ptrarray[i][j]<min)
                min = ptrarray[i][j];
        }
        arr[i] = min;
        printf("%0.2f   ", arr[i]);
        //cout << arr[i] << " ";
    }
    //удаление из памяти
    for (int count = 0; count < num; count++) 
        delete[]ptrarray[count];
    delete[] arr;
    system("pause");
    return 0;
}

Объяснение кода листинга программы

  1. Начало работы программы
  2. Генерация случайных чисел
  3. Ввод количества строк для матрицы
  4. Выделение памяти под матрицу
  5. Заполнение матрицы случайными числами
  6. Вывод матрицы на экран
  7. Поиск минимального элемента в каждой строке матрицы и его сохранение в отдельном массиве
  8. Вывод минимальных значений на экран
  9. Удаление выделенной памяти
  10. Ожидание нажатия клавиши для завершения работы программы
  11. Возврат 0, что означает успешное завершение работы программы В данном коде используется два массива: массив-матрица с случайными числами и массив для хранения минимальных значений в каждой строке. С помощью функции scanf вводится количество строк для матрицы. Далее с помощью двух вложенных циклов заполняется матрица случайными числами. Затем с помощью двух вложенных циклов выводятся значения матрицы на экран. Далее с помощью двух вложенных циклов находится минимальное значение в каждой строке матрицы и сохраняется в отдельном массиве. Затем с помощью одного цикла выводятся минимальные значения на экран. После этого освобождается выделенная память и ожидается нажатие клавиши для завершения работы программы.

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


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

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

6   голосов , оценка 4.167 из 5
Похожие ответы