Ir ao conteúdo
  • Cadastre-se
Bernardo Nunes

C++ Erro Em apagar nome

Recommended Posts

Olá a todos. Estou a realizar um programa em C++ para a escola e estou a ter um erro que persiste em aparecer que se encontra na linha 158 [Error] comparison between distinct pointer types 'char (*)[20]' and 'char*' lacks a cast [-fpermissive]. Envio agora o codigo:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<locale.h>
int idades()
{
    system("cls");
    int r=5;
    int idades[r];
    int escolha2, escolha3, i, x, j, posicao, tamanho, encontrado;
    do
    {
    printf("\n1-inserir idades\n2-Listar\n3-Pesquisar\n4-Ordenar\n5-Eliminar\n6-Estatistica\n7-Regressar ao menu");
    printf("\n\n Escolha uma opcao: ");
    scanf("%d",&escolha2);
    system("cls");
    switch (escolha2)
    {
        case 1:
            {
                for(i=0;i<r;i++)
                {
                    printf("Introduza a %d idade: ",i+1);//aqui na coisa dos nomes no case 2 e 3.
                    scanf("%d",&idades[i]);
                }
                system("cls");
                break;
            }
        case 2:
            {
                for(i=0;i<r;i++)
                {
                    printf("%d\n",idades[i]);
                }
                sleep(5);
                system("cls");
                break;
            }
        case 3:
            {
                printf("Introduza a idade que dejesa procurar: ");
                scanf("%d",&x);
                i=0;
                encontrado=0;
                do
                {
                    if (idades[i]==x)
                    {
                        encontrado=1;
                        posicao=i+1;
                        break;
                    }
                    i++;
                    }while(i < r && encontrado==0);
                    if (encontrado==1)
                    {
                        printf ("Idade encontrada na posição: %d\n",posicao);
                    }
                    else if(encontrado!=1)

                    {
                        printf ("Idade não encontrada\n");
                    }
                    sleep(5);
                    system("cls");
                    break;        
                }
            }
        }while(escolha2!=7);
}
int nomes()
{
    system("cls");
    int N;
    int r=5;
    char nomes[r][20];
    char x[1][20];
    int escolha2, i,posicao,j, tamanho, encontrado, eliminar;
    do
    {
        printf("\n1-Inserir nome\n2-Listar\n3-Pesquisar\n4-Ordenar\n5-Eliminar\n6-Regressar a Menu");
        printf("\n\n Escolha uma opcao: ");
        scanf("%d",&escolha2);
        system("cls");
            switch (escolha2)
            {
            case 1:
                {
                    system("cls");
                    for(i=0;i<r;i++)
                    {
                        for(j=0;j<1;j++)
                        {
                            printf("Introduza o %d nome: ",i+1);
                            scanf("%s",&nomes[i][j]);
                        }
                    }
                    system("cls");
                    break;
                }
                case 2:
                {
                    for (i=0;i<r;i++)
                    {
                        N=strlen(nomes[i]);//define o tamanha da string
                        printf("\n");
                        for (j=0;j<N;j++)
                        {
                            printf("%c",nomes[i][j]);
                        }
                    }
                    sleep(5);
                    system("cls");
                    break;
                }
                case 3:
                {
                    printf("Introduza o nome que dejesa procurar: ");
                    scanf("%s",&x);
                    i=0;
                    encontrado=0;
                    do
                    {
                         if (strcmp(nomes[i],x[0])==0)//compara os dois nomes
                        {
                            encontrado=1;
                            posicao=i+1;
                            break;
                        }
                        i++;
                    }while(i < r && encontrado==0);
                    if (encontrado==1)
                    {
                        printf ("Nome encontrado na posição: %d\n",posicao);
                    }
                    else
                    {
                        printf ("Nome não encontrado\n");
                    }
                    sleep(5);
                    system("cls");
                    break;        
                }
               case 5: //Eliminar nota da tabela
                {
                    
                // Introduzir nome (x) a apagar se existir    
                printf("Introduza o nome que deseja eliminar: ");
                scanf("%s",&x);
                  
                // Verificar se o nome existe e em que posição do Array nomes
                int pos; // posição do nome x se encontrado
                eliminar = 0;
                for(i=0;i<r;i++)
                {
                 printf("\n %s - %s", nomes[i], x);
                if (x == nomes[i])
                {
                    pos = i;
                    eliminar = 1;
                    printf(" Nome encontrado na posição: %d", pos);
                }
                }
                // Eliminar nome (x) se existe no array nomes (eliminar == 1)
                if (eliminar == 1 )
                {
                for(i=pos;i<(r);i++)     
                    {
                        nomes[i] == nomes[i+1];
                    }
                r = r - 1;    
                printf (" Aviso o nome x foi eliminado da tabela nomes ....");
                }  
                else
                {    
                printf(" Aviso --- o nome x não existe no Array nomes");
                }  
                sleep(5);
                system("cls");
                break;
            }
            }
        }while(escolha2!=6);
}
int notas()
{
   system("cls");
    int r=5;
    float x;
    float nota[r];
    int escolha2,escolha3, i, encontrado, posicao, eliminar;
    do
    {
    system("cls");
    printf("\n1-Inserir notas\n2-Listar\n3-Pesquisar\n4-Eliminar\n5-Estatistica\n6-Regressar a Menu");
    printf("\n\n Escolha uma opcao: ");
    scanf("%d",&escolha2);
    system("cls");
    switch (escolha2)
    {
        case 1:
            {
                for(i=0;i<r;i++)
                {
                    printf("Introduza a %d nota: ",i+1);
                    scanf("%f",&nota[i]);
                }
                system("cls");
                break;
            }
            case 2:
            {
                for(i=0;i<r;i++)
                {
                    printf("%.2f\n",nota[i]);
                }
                sleep(5);
                system("cls");
                break;
            }
        case 3:
            {
                printf("Introduza a nota que dejesa procurar: ");
                scanf("%f",&x);
                i=0;
                encontrado=0;
                do
                {
                    if (nota[i]==x)
                    {
                        encontrado=1;
                        posicao=i+1;
                        break;
                    }
                    i++;
                    }while(i < r && encontrado==0);
                    if (encontrado==1)
                    {
                        printf ("Nota encontrada na posição: %d\n",posicao);
                    }
                    else if(encontrado!=1)

                    {
                        printf ("Nota não encontrada\n");
                    }
                    sleep(5);
                    system("cls");
                    break;        
                }
                case 4: //Eliminar nota da tabela
                {
                    
                // Introduzir nota (x) a apagar se existir    
                  printf("Introduza a nota que deseja eliminar: ");
                  scanf("%f",&x);
                  
                // Verificar se a nota existe e em que posição do Array notas
                int pos; // posição da nota x se encontrada
                eliminar = 0;
                for(i=0;i<r;i++)
                {
                 printf("\n %f - %f", nota[i], x);
                if (x == nota[i])
                {
                    pos = i;
                    eliminar = 1;
                    printf(" Nota encontrada na posição: %d", pos);
                }
                }
                // Eliminar nota (x) se existe no array notas (eliminar == 1)
                if (eliminar == 1 )
                {
                for(i=pos;i<(r);i++)     
                    {
                        nota[i] = nota[i+1];
                    }
                r = r - 1;    
                printf (" Aviso a nota x foi eliminada da tabela notas ....");
                }  
                else
                {
                printf(" Aviso --- a nota x não existe no Array notas");
                }  
                sleep(5);
                system("cls");
                break;
            }
        case 5:
            {
                do
                {
                system("cls");
                    printf("\n 1 - Numero de alunos\n 2 - Numero de notas positivas\n 3 - Numero de notas negativas\n 4 - Nota mais elevada\n 5 - Nota mais baixa\n 6 - Media das notas por aluno\n 7 - Media das notas por modulo\n 8 - Media das notas\n 9 - Regressar a Menu");
                    printf("\n\n Escolha uma opcao: ");
                    scanf("%d",&escolha3);
                    switch (escolha3)
                    {
                        case 1:
                            {
                            }
                    }
                }while(escolha3!=9);
            }
       }
}while(escolha2!=6);
}
int main()
{
    int escolha, i, x;
    setlocale(LC_ALL,"");
    while (escolha!=4)
    {
        system("cls");
        printf("\n 1 - Idades ");
        printf("\n 2 - Nomes ");
        printf("\n 3 - Notas ");
        printf("\n 4 - Fechar Programa ");
        printf("\n\n Escolha uma opcao: ");
        scanf("%d",&escolha);
        if( escolha==4)
        {
            printf("\n O Programa foi fechado.\n\n");
            system ("\n\npause");
        }  
        if(escolha==1)
        {
            idades();
        }
        if(escolha==2)
        {
            nomes();
        }
        if(escolha==3)
        {
            notas();
        }
    }
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×