Задача по функциям - C (СИ)

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

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

Условие таково: Создать программу, которая выполняет действия из задания 1 и задания 2. По запросу с клавиатуры, программа выполняет следующие действия: 1) Ввести новый массив (динамический); 2) Задание 1; 3) Вывод массива; 4) Задание 2; 5) Выход. В программе должно быть реализовано меню, каждое действие должно быть реализовано в отдельной функции. Задание 1: Дан двумерный массив состоящий из различных элементов. В каждой строке выбирается минимальный элемент, а среди них максимальный элемент. Напечатать номер строки в которой расположен этот элемент Задание 2: Напишите программу, которая вводит несколько строк текста и символ поиска и использует функцию strchr, чтобы определить суммарное число вхождений символа в текст. Вот мой код. В первой задаче не получается найти максимальный из минимальных элементов, а при выполнении функций вывода и обеих задач выдает ошибки. Подскажите, что не так
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <locale>
int menu();
float *massiv;
void vvod (float *massiv, int n1, int m1);
int vivod (float *massiv, int n1, int m1);
int zadanie1 (float *massiv, int n1, int m1);
int zadanie2 (char *stroka, char symbol);
int main () {
    setlocale(LC_ALL,"russian"); 
    while (1) {
        switch (menu()) {
            case 1:
                int n, m;
                printf ("Введите число строк\n");
                    scanf ("%d", &n);
                printf ("Введите число столбцов\n");
                    scanf ("%d", &m);
                vvod (massiv, n, m);
                break;
            case 2:
                zadanie1 (massiv, n, m);
                break;
            case 3: 
                vivod (massiv, n, m);
                break;
            case 4:
                char stroka[1024];
                printf ("Введите строку\n");
                scanf ("%s", &stroka);
                char symbol;
                printf ("Введите символ для поиска\n");
                scanf ("%c", &symbol);
                zadanie2 (stroka, symbol);
                break;
            case 5: 
                return 0;
        }
    }
}
int menu () {
    setlocale(LC_ALL,"russian"); 
    int a;
    do {
    printf("\n   Меню: \n");
        printf("1. Ввести новый массив (динамический) \n");
        printf("2. Задание 1 \n");
        printf("3. Вывод массива\n");
        printf("4. Задание 2 \n");
        printf("5. Выход  \n");
        printf("\t Ваш выбор: ");
        scanf("%d",&a);  
} while (a>5);
return a;
}
void vvod (float *massiv, int n1, int m1) {
    int i, j;
    massiv = (float*) malloc(n1*m1*sizeof(float));
    for (i=0;i<n1;i++)
        for (j=0;j<m1;j++){
            printf("Введите элемент [%d,%d]:\n", i+1, j+1);
            scanf("%f", (massiv+i*m1+j));
        }
}
int zadanie1 (float *massiv, int n1, int m1) {
    int i, j;
    float min;
    for (i=0; i<n1; i++) {
    min=*(massiv+i*m1+0);
        for (j=0; j<m1; j++) {
            if (*(massiv+i*m1+j)<min) {
                min = *massiv;
            }
        }
          printf("Минимальный элемент %i-й строки равен %0.2f\n", i+1, min);
    }
    max = min;
    for (i = 0; i < n1; i++) {
        min = *(massiv+i*m1+0);
        for (j = 0; j < n; j++) {
            if (*massiv < min) {
                min = *massiv;
            }
        }
        if (max < min) {
            max = min;
        }
    }
 
    return 0;
}
 
int vivod (float *massiv, int n1, int m1) {
    int i, j;
    printf("\n");
    for (i=0;i<n1;i++){
        for (j=0;j<m1;j++) {
        printf("%0.2f\t", (massiv+i*m1+j));
        }
            printf("\n");
            free(massiv);
    }
    return 0;
    getch ();
}
int zadanie2 (char *stroka, char symbol) {
    int chislo = 0; 
    char *ptr = NULL;
    ptr = strchr(stroka, symbol);
  while (ptr!=NULL)
  {
    chislo++;
  }
    printf("\n Число вхождений символа '%c' в текст равно %d\n", symbol, chislo);
    return 0;
}

Решение задачи: «Задача по функциям»

textual
Листинг программы
void vvod (float *&massiv, int n1, int m1);

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


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

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

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