答案在 C

问题描述

我遇到了错误,因为我需要将 2d 数组转换为 3d 数组。我理解这一点,因为如果我将数组赋值放在注释中,我就不再有问题了。我还将分配 3d 数组的代码部分发送到这里。

    consulta agendaMedicos[50][50][50]; 
    consulta agendaEnfermeiros[50][50][50];

我认为这无关紧要,但我使用的结构是这样的:

typedef struct Consulta {

    char nomeUtente[70];
    int numSNS;
    int dia;
    int mes;
    int ano;
    int horasInicio;
    int minutosInicio;
    int horasFim;
    int minutosFim;

} consulta;

这是我如何将数组发送到新函数的示例

void novaConsulta(int *nAgendasMedico,consulta agendaMedicos[][50][50],int membroEscolhido,int clinicaSelecionada)

这是我唯一的功能:

void novaConsulta(int *nAgendasMedico,int clinicaSelecionada)
{
    
    do 
    {
                
        puts("Insira o dia:");
        scanf("%d",&agendaMedicos[nAgendasMedico[membroEscolhido]][membroEscolhido][clinicaSelecionada].dia);
        system("cls");
                
    }while (agendaMedicos[nAgendasMedico[membroEscolhido]][membroEscolhido][clinicaSelecionada].dia < 0 || agendaMedicos[nAgendasMedico[membroEscolhido]][membroEscolhido][clinicaSelecionada].dia > 31);
    
    printf("%d",agendaMedicos[nAgendasMedico[membroEscolhido]][membroEscolhido][clinicaSelecionada].dia);
    
}

这里是我的主要代码:


int main(int argc,char *argv[]) {
    
    int membroEscolhido = 1,clinicaSelecionada = 0;
    
    int nAgendasMedico[50];
    
    consulta agendaMedicos[50][50][50]; 
    consulta agendaEnfermeiros[50][50][50];
    
    nAgendasMedico[membroEscolhido] = 0;
    
    novaConsulta(nAgendasMedico,agendaMedicos,membroEscolhido,clinicaSelecionada);
    
    nAgendasMedico[membroEscolhido]++;
    
    return 0;
}

当我编译程序时,没有出现错误,发生的情况是程序在一段时间后关闭,如图所示:

enter image description here

这是我最小的可重现示例:


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

/* run this program using the console pauser or add your own getch,system("pause") or input loop */



typedef struct Consulta {

    char nomeUtente[70];
    int numSNS;
    int dia;
    int mes;
    int ano;
    int horasInicio;
    int minutosInicio;
    int horasFim;
    int minutosFim;

} consulta;

void novaConsulta(int *nAgendasMedico,int clinicaSelecionada);

int main(int argc,clinicaSelecionada);
    
    nAgendasMedico[membroEscolhido]++;
    
    return 0;
}

void novaConsulta(int *nAgendasMedico,agendaMedicos[nAgendasMedico[membroEscolhido]][membroEscolhido][clinicaSelecionada].dia);
    
}

我的开发程序是 DevC++ 一种 C 语言。 谢谢大家

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)