Я сомневаюсь, мне нужна помощь в следующем упражнении

следующее упражнение спрашивает меня следующее:

  1. Мы хотим контролировать количество жителей здания с 6 этажами и 4 дверями (A, B, C и D) в каждый этаж Выполните программу, которая случайным образом вводит (от 1 до 10) количество жителей каждой двери здания. В программе должно быть сказано:

    а) Жилище (пол и дверь), в котором проживает большинство жителей здания.

    б) Этаж, который имеет больше жителей всего здания.

    в) Дверь, которая имеет больше жителей всего здания.

    г) Средняя численность населения каждого этажа.

    е) Среднее количество жителей на дверь.

Мой код выглядит следующим образом:

#include <stdio.h>
#include <stdlib.h>

#define N_FILAS 6
#define N_COLUMNAS 4

int mostrarMenu(void);
void leer_matriz(void);
void escribir_matriz (void);
void piso_mas_habitantes(void);
void puerta_mas_habitantes(void);
void media_pisos(void);
void media_puerta(void);

int main(void)
{
    int matriz[N_FILAS][N_COLUMNAS];
    int opcion;
    int leer,escribir,max_piso,max_puerta,med_pisos,med_puerta;

    opcion=mostrarMenu();

    switch (opcion)
    {
    case 1:
        leer=void leer_matriz();
        escribir=void escribir_matriz();
        printf("La matriz es:\n");
        break;
    case 2:
        max_piso=piso_mas_habitantes();
        printf("El piso con mas habitantes es:\n");
        break;
    case 3:
        max_puerta=puerta_mas_habitantes();
        printf("La puerta con mas habitantes es:\n");
        break;
    case 4:
        med_pisos=media_pisos();
        printf("La media de pisos es:\n");
        break;
    case 5:
        med_puerta=media_puerta();
        printf("La media de puertas es:\n");
        break;
    default:
        printf("Fin del programa.");

    }
    system ("PAUSE");
    return 0;
}

int mostrarMenu(void)
{
    int opcion;

    printf("MENU DEL EJERCICIO \n");
 printf("============================ \n\n\n");
 printf("1 - Leer y escribir matriz. \n");
 printf("2 - La vivienda (piso y puerta) que más habitantes tiene del edificio. \n");
 printf("3 - El piso que más habitantes tiene de todo el edificio. \n\n\n");
 printf("4 - La puerta que más habitantes tiene de todo el edificio. \n");
 printf("5 - La media de habitantes de cada piso. \n");
 printf("6 - La media de habitantes por puerta. \n");
 printf("Opcion: ");
 scanf("%d",&opcion);
 return (opcion);
}

void leer_matriz(int matriz[N_FILAS][N_COLUMNAS])
{
    int i,j;
    int leer;
      srand(time(NULL));
      for(i=0;i<N_FILAS;i++){
        for(j=0;j<N_COLUMNAS;j++){
            matriz[i][j]=1+rand()%10;
            printf(" %i ",matriz[i][j]);
        }
        printf("\n");
    }
}

 void escribir_matriz (int matriz[N_FILAS][N_COLUMNAS])
 {
      int i,j;
      for(i=0;i<N_FILAS;i++)
      {
      printf("\n");
      for(j=0;j<N_COLUMNAS;j++)
      printf(" %i ", matriz[i][j]);
      }
}

void piso_mas_habitantes(int matriz[N_FILAS][N_COLUMNAS])
{
    int i,j, aux[7]={0,0,0,0,0,0,0};
    int max_piso;
    int a=0, b=0;

    for (j=0;j<N_COLUMNAS;j++){
        for (i=0;i<N_FILAS;i++){
    aux[j]+=matriz[i][j];
        }
    }
    for (i=0;i<7;i++){
        if (aux[i]>aux[i+1]&&aux[i]>a){
            a=aux[i];
            b=i;
        }
    }
    return max_piso;
}

void puerta_mas_habitantes(int matriz[N_FILAS][N_COLUMNAS])
{
    int i,j, aux[4]={0,0,0,0};
    int a=0, b=0;
    int max_puerta;
    char c[4]={'A','B','C','D'};

        for (i=0;i<N_FILAS;i++){
            for (j=0;j<N_COLUMNAS;j++){
                aux[i]+=matriz[i][j];
            }
        }

        for (i=0;i<4;i++){
            if (aux[i] > aux[i+1] && aux[i]>a){
                a=aux[i];
                b=i;
            }
        }
        return max_puerta;
}

void media_pisos(int matriz[N_FILAS][N_COLUMNAS])
{
    int i,j, aux[7]={0,0,0,0,0,0,0};
    int med_pisos;
    float a;

        for (j=0;j<N_COLUMNAS;j++){
        for (i=0;i<N_FILAS;i++){
    aux[j]+=matriz[i][j];
        }
    }

    for (i=0;i<7;i++){
        a=aux[i]/4.0;
    }
    return med_pisos;
}

void media_puerta(int matriz[N_FILAS][N_COLUMNAS])
{
    int i,j, aux[4]={0,0,0,0};
    int med_puerta;
    float a;
    char b[4]={'A','B','C','D'};

    for (i=0;i<N_FILAS;i++){
            for (j=0;j<N_COLUMNAS;j++){
                aux[i]+=matriz[i][j];
            }
        }

    for (i=0;i<4;i++){
        a=aux[i]/7.0;
    }return med_puerta;
}
0
задан 27.11.2019, 19:12
1 ответ

как дела? Вот, я проверил ты cГіdigo и у него есть много концептуальных ошибок.

1), Когда она признает себя функцией, осуществляется следующего способа:

[Tipo de dato devuelto] Nombre_Func(Argumentos);

Это значит, что, если бы queres, что он возвращает тебя, например, piso_mas_habitantes (), был должен возвращаться int, не void.

int piso_mas_habitantes();

2) Внутри функций, которые ты нужно использовать return, ты не используешь переменную, не использованную внутри функции, и также определенная, я мотивирую, из-за которого будет возвращать тебя мусор (объявив переменную, он не создается контентом в 0, но он содержит мусор). Следуя примеру piso_mas_habitantes (), ты возвращаешься max_piso, и в коде ты распределяешь квартиру с max жители в переменную b, тогда ты был бы должен возвращаться b.

3) Внутри функции leer_matriz () я понимаю, что он вводит случайным образом данные внутри созданного массива, для того, чтобы функционировала вышеупомянутая функция, ты был бы должен перемещать его из-за ссылки массив в функцию. Если ты посылаешь ему только копию, закончив выполнять функцию, не будет сохранять тебя никакая информация. AdemГЎs, вы включаете функцию

srand(time(NULL));

что-то, который правилен, но для того, чтобы оно функционировало, функция украла () ты был бы должен включать книжный магазин time.h

#include <time.h>

4) Внутри Переключателя ты используешь printf () для отображать переменную, которая возвращает функцию, призванную заблаговременно (мы продолжаем с примером piso_mas_habitantes) ты был бы должен использовать printf используя %d и показывая, что переменная queres печатать:

printf("El piso con mas habitantes es: %d",max_piso);

5) Внутри case 1 ты распределяешь в переменную читать возврат функции, которая ничего не возвращает, это будет производить тебе другую проблему, составив.

6) Для стоимости возврата функций, которые вычисляют средний показатель квартир, он был бы должен возвращать float, так как, если queres возвращать int, "обрезает" тебя, десятичная часть, а именно, если среднего показателя 2,8, возвращает тебе 2.

Надеялся, что ты помогают упомянутые точки, и мы ждем тебя снова для любой другой консультации.

типов Привета

0
ответ дан 01.12.2019, 10:46