Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
syroka

Programa em c++ porque nao compila onde esta meu erro?

Pergunta

#include<stdio.h>
#include<stdlib.h>
#include<locale.h>
#include<string.h>
typedef struct no estr_no;
int i;
struct no{
    char nomeRaiz[30];
    estr_no* pai;
    estr_no* filhoE;
    estr_no* filhoD;
};
    

char p[15][100];
char r[15][100];
void imprime_no(estr_no no)
    {
    printf("\nValor atual: %s",no ->nomeRaiz);
    
    if (no->filhoE != NULL) 
    {
    
        imprime_no(no->filhoE);
    }
    
    
    if (no->filhoD != NULL) 
    
    {
    
        imprime_no(no->filhoD);
    }
    
void imprime_no(estr_no* no);*/
int main (void){
    estr_no nome[15];
    nome[0].pai=NULL;
    nome[1].pai= &nome[0];
    nome[2].pai= &nome[0];
    nome[3].pai= &nome[1];
    nome[4].pai= &nome[1];
    nome[5].pai= &nome[2];
    nome[6].pai= &nome[2];
    nome[7].pai= &nome[3];
    nome[8].pai= &nome[3];
    nome[9].pai= &nome[4];
    nome[10].pai= &nome[4];
    nome[11].pai= &nome[5];
    nome[12].pai= &nome[5];
    nome[13].pai= &nome[6];
    nome[14].pai= &nome[6];
    
    nome[0].filhoE=&nome[2];
    nome[0].filhoD=&nome[1];
    
    nome[1].filhoE=&nome[4];
    nome[1].filhoD=&nome[3];
    
    nome[2].filhoE=&nome[6];
    nome[2].filhoD=&nome[5];
    
    nome[3].filhoE=&nome[8];
    nome[3].filhoD=&nome[7];
    
    nome[4].filhoE=&nome[10];
    nome[4].filhoD=&nome[9];
    
    nome[5].filhoE=&nome[12];
    nome[5].filhoD=&nome[11];
    
    nome[6].filhoE=&nome[14];
    nome[6].filhoD=&nome[13];
    
    nome[7].filhoE=NULL;
    nome[7].filhoD=NULL;
    
    nome[8].filhoE=NULL;                      //9
    nome[8].filhoD=NULL;
    
    nome[9].filhoE=NULL;
    nome[9].filhoD=NULL;
    
    nome[10].filhoE=NULL;
    nome[10].filhoD=NULL;
    
    nome[11].filhoE=NULL;
    nome[11].filhoD=NULL;
    
    nome[12].filhoE=NULL;
    nome[12].filhoD=NULL;
    
    nome[13].filhoE=NULL;
    nome[13].filhoD=NULL;
    
    nome[14].filhoE=NULL;
    nome[14].filhoD=NULL;
    
    
 strcpy(p[0] ,"Qual seu nome?");  
 strcpy(p[1],"Qual o nome da sua Mãe?");
 strcpy(p[2],"Qual o nome do seu Pai?");
 strcpy(p[3],"Qual o nome da sua avó Materna?");
 strcpy(p[4],"Qual o nome da sua avô Materna?");
 strcpy(p[5],"Qual o nome da sua avó Paterna?");
 strcpy(p[6],"Qual o nome do seu avô Paterno?");
 strcpy(p[7],"Qual o nome do seu bizavó materna por parte da vó?");
 strcpy(p[8],"Qual o nome do seu bizavô materna por parte da vó?");
 strcpy(p[9],"Qual o nome do seu bizavó materna por parte da vô?");
 strcpy(p[10],"Qual o nome do seu bizavô materna por parte da vô?");
 strcpy(p[11],"Qual o nome do seu bizavó paterno por parte da vó?");
 strcpy(p[12],"Qual o nome do seu bizavô paterno por parte da vó?");
 strcpy(p[13],"Qual o nome do seu bizavó paterno por parte da vô?");
 strcpy(p[14],"Qual o nome do seu bizavô paterno por parte da vô?");
 
 
 strcpy(r[0] ,"O seu nome é :");  
 strcpy(r[1],"O nome da sua Mãe é :");
 strcpy(r[2],"O nome do seu Pai é :");
 strcpy(r[3],"O nome da sua avó Materna é :");
 strcpy(r[4],"O nome da sua avô Materna é :");
 strcpy(r[5],"O nome da sua avó Paterna é :");
 strcpy(r[6],"O nome do seu avô Paterno é :");
 strcpy(r[7],"O nome do seu bizavó materna por parte da vó é :");
 strcpy(r[8],"O nome do seu bizavô materna por parte da vó é :");
 strcpy(r[9],"O nome do seu bizavó materna por parte da vô é :");
 strcpy(r[10],"O nome do seu bizavô materna por parte da vô é :");
 strcpy(r[11],"O nome do seu bizavó paterno por parte da vó é :");
 strcpy(r[12],"O nome do seu bizavô paterno por parte da vó é :");
 strcpy(r[13],"O nome do seu bizavó paterno por parte da vô é :");
 strcpy(r[14],"O nome do seu bizavô paterno por parte da vô é :");
 
 
         setlocale (LC_ALL,"portuguese");
for (i = 0; i <= 14; i++){
    
        printf("%s\n", p);
        fflush(stdin);    
        scanf("%s",nome.nomeRaiz);
    
    
    };
    printf("-----------------------------------------------------------------------\n\n\n\n\n\n\n");
    //imprime_no(nome);
    for (i = 0; i <= 14; i++){
    printf("%s\n", r,"\n");
    printf("%s\n",nome.nomeRaiz);
}
    i=0;
printf("-----------------------------------------------------------------------\n\n\n\n\n\n\n");
    i=0;
printf("Filhos do lado Direito do RAIZ de  são : \n");
printf("%s\n",nome[1].nomeRaiz);
printf("%s\n",nome[3].nomeRaiz);
printf("%s\n",nome[4].nomeRaiz);
printf("%s\n",nome[7].nomeRaiz);
printf("%s\n",nome[8].nomeRaiz);
printf("%s\n",nome[9].nomeRaiz);
printf("%s\n",nome[10].nomeRaiz);

printf("-----------------------------------------------------------------------\n\n\n\n\n\n\n");
    i=0;
printf("Filhos do lado Esquerdo do RAIZ de  são : \n");
printf("%s\n",nome[2].nomeRaiz);
printf("%s\n",nome[5].nomeRaiz);
printf("%s\n",nome[6].nomeRaiz);
printf("%s\n",nome[11].nomeRaiz);
printf("%s\n",nome[12].nomeRaiz);
printf("%s\n",nome[13].nomeRaiz);
printf("%s\n\n\n",nome[14].nomeRaiz);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

7 horas atrás, Rapadura disse:

Olá,

 

Você precisa de um compilador e colocar "return 0 no final do código",:smile:

 

Abraços. 


Ele já tem um compilador. Caso contrário não teria visto que não compila.

Detalhe: isso é C, não C++.

Os erros estão aí:

main.c: In function 'imprime_no':
main.c:19:35: error: invalid type argument of '->' (have 'estr_no {aka struct no}')
     printf("\nValor atual: %s",no ->nomeRaiz);
                                   ^
main.c:21:11: error: invalid type argument of '->' (have 'estr_no {aka struct no}')
     if (no->filhoE != NULL) 
           ^
main.c:24:22: error: invalid type argument of '->' (have 'estr_no {aka struct no}')
         imprime_no(no->filhoE);
                      ^
main.c:28:11: error: invalid type argument of '->' (have 'estr_no {aka struct no}')
     if (no->filhoD != NULL) 
           ^
main.c:32:22: error: invalid type argument of '->' (have 'estr_no {aka struct no}')
         imprime_no(no->filhoD);
                      ^
main.c:35:6: error: conflicting types for 'imprime_no'
 void imprime_no(estr_no* no);*/
      ^
main.c:17:6: note: previous definition of 'imprime_no' was here
 void imprime_no(estr_no no)
      ^
main.c:35:31: error: expected expression before '/' token
 void imprime_no(estr_no* no);*/
                               ^
main.c:171:1: error: expected declaration or statement at end of input
 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Sharank
      Strcat Function In C++
       
      I'm new to C and C++ programming, can anyone give me a hint on what I'm doing wrong here. I'm trying to write to concat function that takes to pointers to chars and concatenates the second to the first. The code does do that, but the problem is that it adds a bunch of junk at the end.
       
      For instance, when passing the arguments - "green" and "blue", the output will be "greenblue" plus a bunch of random characters. I also wrote the strlen function that strcat uses, which I will provide below it for reference. I'm using the online compiler at InterviewBit The exact instructions and specification is this:
       
      int main(int argc, char** argv)
      {
      const int MAX = 100;
       
      char s1[MAX];
      char s2[MAX];
       
      cout << "Enter your first string up to 99 characters. ";
      cin.getline(s1, sizeof(s1));
      int size_s1 = strlen(s1);
      cout << "Length of first string is " << size_s1 << "\n";
       
      cout << "Enter your second string up to 99 characters. ";
      cin.getline(s2, sizeof(s2));
      int size_s2 = strlen(s2);
      cout << "Length of second string is " << size_s2 << "\n";
      cout << " Now the first string will be concatenated with the second
      string ";
      char* a = strcat(s1,s2);
       
      for(int i = 0; i<MAX; i++)
      cout <<a;
       
      // system("pause");
      return 0;
      }
       
      //strcat function to contatenate two strings
      char* strcat(char *__s1, const char *__s2)
      {
      int indexOfs1 = strlen(__s1);
      int s2L = strlen(__s2);
      cout <<s2L << "\n";
      int indexOfs2 = 0;
      do{
      __s1[indexOfs1] = __s2[indexOfs2];
      indexOfs1++;
      indexOfs2++;
      }while(indexOfs2 < s2L);
       
       
      return __s1;
      }
       
      //Returns length of char array
      size_t strlen(const char *__s)
      {
      int count = 0;
      int i;
      for (i = 0; __s != '\0'; i++)
      count++;
      return (count) / sizeof(__s[0]);
       
      }
    • Por roberson abalaid
      #include <stdio.h>
      #include <stdlib.h>
      int arr[3][5];
      int main(){
          
          printf("Favor inserir os dados...\n");
          
          for(int i = 0; i < 3; i++){
              for(int j = 0; j < 5; j++){
                  scanf("%d", &arr[j]);
              }
          }
          
            printf("os valores inseridos foram...\n");
          
          for(int i = 0; i < 3; i++){
              for(int j = 0; j < 5; j++){
                  printf("  %d  ", arr[j]);
              }
              printf("\n");
          }
          return 0;
      }
    • Por flipmartinz13
      Alguém pode me ajudar nessa questão de C++? não estou conseguindo construir o algorítmo corretamente.

      5.92)    Faça um algoritmo que leia a matrícula, nome, sexo e três notas dos alunos de uma escola e obtenha os seguintes resultados:
      a) A matrícula da aluna que obteve a maior média.
      b) A matrícula do aluno que obteve a menor média.
      c) O percentual de mulheres na turma.
      d) Quantos alunos foram aprovados, independente do sexo.
      e) O percentual de alunas aprovadas.
      Obs.: o flag é uma matrícula igual a 0 (zero).
    • Por flipmartinz13
      Estou tentando fazer esse exercício de introdução a programação em C++, e estou tendo dificuldades para criar os algoritmos. Alguém poderia me ajudar?


      Uma agência de turismo quer fazer um levantamento das praias da cidade para um programação turística de verão, sabendo-se que cada praia tem um nome e uma distância (em Km) do hotel. Criar um algoritmo que forneça os seguintes dados:
      18

       Porcentagem de turistas nas praias próprias do hotel
       A praia mais adiante
       Nome e distancia das praias não-próprias com distancia do hotel maior que 10 km.
      O algoritmo acaba quando se digita @ para nome da praia.
    • Por danisj
      #include<iostream>
      using namespace std;
      int BuscaBin (int lista[], int baixo, int alto, int chave)
      {
          int central;
          int valorcentral;
          while (baixo <= alto)
          {
              central = (baixo + alto)/2;
              valorcentral = lista[central];
              if (chave == valorcentral)
                  return central;
              else if (chave < valorcentral)
                  alto = central -1;
              else
                  baixo = central + 1;
          }
      }
      int main()
      {
          int a[10];
          int chave, pos;
          cout << "Introduza uma lista de 10 inteiros:";
          for (pos = 0; pos < 10; pos++)
              cin >> a[pos];
          cout << "Introduza chave a buscar:";
          cin >> chave;
          pos = 0;
          while ((pos = BuscaBin(a, 0, 9, chave))!= -1)
          {
              pos++;
          }
          cout << chave << " está na lista "  << " vezes na lista " << endl;
      }
          
      O objetivo é inserir uma lista e resultar  numa busca binária e ele retornar a chave, não posso alterar a função BuscaBin
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.