Ir ao conteúdo

Posts recomendados

Postado

fala galera sou novo aqui e sou estudante da area de ti, estou com o seguinte codigo que desenvolvi e ele esta praticamente pronta so falta um detalhe na função palavras , pois ela esta recebendo no primeiro vetor  palavras normalmente e recebendo também o numero que o usuario vai querer receber em palavras também , mas na hora de imprimir esta dando erro e so sai "null", ja tentei tudo que é formas de resolver , ate encontrei uma com switch,  mas meu professor quer q eu compare vetor com numero solicitado , então agradeço qualquer força ai , abraços desde ja .

#include<string.h>
#include<stdio.h>
#include<conio.h> 
#include<ctype.h> 
#include<math.h> 
#include<stdlib.h> 


//fiz modificação nos loops e logicas e designer do codigo e nos problemas de logica e vetores

//declarando todas as variaveis globais que serão usadas no programa.

char vet_palavras[50],vet2[6],resul_palavras[7];
int encontrado=0,escolha,i,vet_mult[6],resul_mult,n,vet[5];
void mult_vet(void);
void palavras(void);
void posi_nu(void);


 //primeira função para multplicar um vetor de interos

void mult_vet(void) {
    
    
    //for que ira receber os valores a serem multiplicados e seu numero multiplicador
            for(i=1;i<=5;i++){
                
                printf("XXX insira o %d valor para ser anexado a %d posicao do vetor: XXX ",i,i);
                scanf("%d",&vet_mult);
            }
    
                printf("XXX insira o valor que voce deseja multiplicar pelos numeros digitados anteriormente: XXX ");
                scanf("%d", &n);
                
                printf("\n\n");
                
                printf("\n XXX multiplicacao dos seus valores digitados: <-------\n");
                
                
                
                
                
            //for para multiplicar os valores do vetor e logo em seguida imprimilos para usuario
            for(i=1;i<=5;i++){
                
                resul_mult=(n*vet_mult);
                printf("XXX valor: %d Multiplicado Por: %d resulta em: %d XXX\n", vet_mult,n,resul_mult);            
            
}
}

//função que ira mostrar um numero escolhido em palavras
void palavras(void) {
    for(i=0;i<=5;i++){
    
    
    printf("XXX insira o valor de %d em palavras: XXX",i); 
    scanf("%s", &vet_palavras); 
    
}
    //entrada do valor a ser imprimido
    printf("XXX insira um numero dentre 0 e 5: XXX"); 
    scanf("%d", &n); 
    
    if (n <=5) {   // testando se o valor e menor que 5
    
    for(i=0;i<=6;i++) {
    
    
    
    if(vet_palavras==n)     {
        

    
    vet_palavras==resul_palavras;
        
        
        
    
    
    
    
}
}

printf("\n XXX %d = %s <------- \n",n,resul_palavras);
}
     else //printf para aviso de numero invalido digitado.
     {
         printf("\n XXX numero inserido difenrente do intervalo entre 0 e 5 <------- \n");
     }

    
    getch ();

}

//função que ira ler um vetor e apos isso era retornar o valor de uma posição escolhida
void posi_nu(void)
{        

//entrada dos valores dentro do laço 
        printf("XXX Digite os valores: XXX \n",i);
 for(int i=1;i<6;i++) 
 {
 scanf("%d",&vet);
 }
 //numero para ser pesquisado
 printf("XXX Digite um numero para ser pesquisado no vetor:XXX ");
 scanf("%d",&n);
 for(int i=1;i<6;i++)
 //testandoo valor para encontrar sua posição
 if(vet==n)
 {
 printf("\n XXX O numero esta na %d posicao  <------- \n",i); //saida dos valores
 encontrado=1;
 }
 if(encontrado!=1) {
 printf("\n XXX insira um numero dos quais voce digitou <-------\n\n"); //caso contrario
}
}

 //menu de string para escolher as opções que o programa poderá realizar
int main () //função principal
{   system("color 85");
    system("cls");  
    
    
    while(escolha!=4)
    {    
        printf ("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n\n");
        
        printf ("XXXXX  escolha uma das opções abaixo  XXXXX\n\n");
        printf("1-XXX Multiplicar vetor XXX\n");
        printf("2-XXX Descrever um numero XXX\n");
        printf("3-XXX Mostrar a posicao de um numero XXX\n");
        printf("4-XXX Sair XXX\n");
        //entrada da opção
        printf("\nXXX digite um numero: XXX\n");
        printf ("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n\n");
        scanf("%d", &escolha);
        
    
        switch(escolha)
         {
             case 1:
                 mult_vet(); //primeira função 
                 break;
             case 2:
                 palavras(); //segunda função
                 break;
             case 3:
                 posi_nu(); //terceira função
                 break;
             case 4:
                 return 0; //sair
             default:
                 printf("XXX insira uma opcao dentre 1 e 4 <-------\n");
             
             
     }

        
    }
    return 0;
 

enviar_clube.txt

  • Curtir 1
Postado

Da sim amigo,  pode notar no cogito na função palavras que está sendo chamada e lá q está o problema , pode notar q haverá o primeiro for para receber as palavras paras os números , e logo em seguida recebe o número que para retornado em palavras , aí vem o problema em seguida no segundo for que serve pra comparar o vetor dar palavras com o número desejado , estou tendo problemas pra comparar e imprimir , rode o programa e execute a segunda função é faça o que que se pede q ir ver o problema 

  • Curtir 1
Postado

@iury rodrigues    você precisa colocar em qual posição do vetor está inserindo os números e palavras, e o vetor de palavras  vet_palavras e resul_palavras é preciso declarar a quantidade de palavras e o tamanho das palavras .   Talvez você tenha colocado essas informações no seu código mas como na hora de postar você não usou o botão  <>  que está na barra de ferramentas da janela de postar o código ficou sem essas informações .

veja seu código com algumas modificações :

#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#include<math.h>
#include<stdlib.h>

//fiz modificação nos loops e logicas e designer do codigo e nos problemas de logica e vetores
//declarando todas as variaveis globais que serão usadas no programa.
char vet_palavras[50][20],vet2[6],resul_palavras[70][20];
int encontrado=0,escolha,i,vet_mult[6],resul_mult,n,vet[5];
void mult_vet(void);
void palavras(void);
void posi_nu(void);
 //primeira função para multplicar um vetor de interos
void mult_vet(void) {
    //for que ira receber os valores a serem multiplicados e seu numero multiplicador
            for(i=1;i<=5;i++){
                printf("XXX insira o %d valor para ser anexado a %d posicao do vetor: XXX ",i,i);
                scanf("%d",&vet_mult[i]);
            }
            printf("XXX insira o valor que voce deseja multiplicar pelos numeros digitados anteriormente: XXX ");
            scanf("%d", &n);
            printf("\n\n");
            printf("\n XXX multiplicacao dos seus valores digitados: <-------\n");
            //for para multiplicar os valores do vetor e logo em seguida imprimilos para usuario
            for(i=1;i<=5;i++){
                resul_mult=(n*vet_mult[i]);
                printf("XXX valor: %d Multiplicado Por: %d resulta em: %d XXX\n", vet_mult[i],n,resul_mult);
            }
}
//função que ira mostrar um numero escolhido em palavras
void palavras(void) {
    for(i=0;i<=5;i++){
        printf("XXX insira a %d palavras: XXX",i+1);
        scanf("%s", &vet_palavras[i]);
    }
    //entrada do valor a ser imprimido
    printf("XXX insira um numero dentre 0 e 5: XXX");
    scanf("%d", &n);
    if (n <=5) {   // testando se o valor e menor que 5
        for(i=0;i<=6;i++) {
            if(i==n)     {
                strcpy(resul_palavras[i],vet_palavras[i]);
            }
        }
        printf("\n XXX %d = %s <------- \n",n,resul_palavras[n]);
    }
    else //printf para aviso de numero invalido digitado.
        printf("\n XXX numero inserido difenrente do intervalo entre 0 e 5 <------- \n");
    getch ();
}
//função que ira ler um vetor e apos isso era retornar o valor de uma posição escolhida
void posi_nu(void)
{
//entrada dos valores dentro do laço
    printf("XXX Digite os valores: XXX \n",i);
    for(int i=1;i<6;i++)
        scanf("%d",&vet[i]);
    //numero para ser pesquisado
    printf("XXX Digite um numero para ser pesquisado no vetor:XXX ");
    scanf("%d",&n);
    for(int i=1;i<6;i++)
    //testandoo valor para encontrar sua posição
        if(vet[i]==n){
            printf("\n XXX O numero esta na %d posicao  <------- \n",i); //saida dos valores
            encontrado=1;
        }
        if(encontrado!=1)
           printf("\n XXX insira um numero dos quais voce digitou <-------\n\n"); //caso contrario
}
 //menu de string para escolher as opções que o programa poderá realizar
int main () //função principal
{  /* system("color 85");*/
    system("cls");


    while(escolha!=4)
    {
        printf ("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n\n");

        printf ("XXXXX  escolha uma das opções abaixo  XXXXX\n\n");
        printf("1-XXX Multiplicar vetor XXX\n");
        printf("2-XXX Descrever um numero XXX\n");
        printf("3-XXX Mostrar a posicao de um numero XXX\n");
        printf("4-XXX Sair XXX\n");
        //entrada da opção
        printf("\nXXX digite um numero: XXX\n");
        printf ("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n\n");
        scanf("%d", &escolha);


        switch(escolha)
         {
             case 1:
                 mult_vet(); //primeira função
                 break;
             case 2:
                 palavras(); //segunda função
                 break;
             case 3:
                 posi_nu(); //terceira função
                 break;
             case 4:
                 return 0; //sair
             default:
                 printf("XXX insira uma opcao dentre 1 e 4 <-------\n");


     }

    }
    /*return 0;*/
}

 

Postado

@devair1010  amigo valeu mesmo muito interessante como você colocou lá eu sabia que estava esquecendo de poucos detalhes nessa comparação ficou legal o resultado , apenas tirei aquela inclusão de 1 no laço do índice pois preciso q ele inicie em zero mesmo , muito obrigado 

adicionado 2 minutos depois

@devair1010 pode me explicar como funciona essa função strcpy que eu não conhecia para melhor entendimento 

  • Curtir 1
Postado

Olá amigo revivendo o tópico entreguei pro meu prof e tava ok mas esqueci um detalhe aqui nesse trecho da função palavras que irei colocar deveria haver um loop para só sair quando o usuário digita-se um número dentre 0 e 5 já tentei com for , while, do while, if e nada do laço pegar apesar de parecer mão com açúcar  ainda n consegui me de uma luz p mim fazer essa lógica , Abraços .

E neste bendito printf que tentei fazer o loop 

printf("XXX insira um numero dentre 0 e 5: XXX");

  • Curtir 1
Postado

@iury rodrigues    para isso você precisa fazer como fez lá no menu, coloque uma variável para controlar o while, que irá repetir tudo até que se digite determinado número, assim você só conseguirá sair da função palavras quando digitar esse número. 

   Experimente esse código da função palavras e veja se é o que você quer :

//função que ira mostrar um numero escolhido em palavras
void palavras(void) {
    int op;
    do{
        system("cls");
        for(i=0;i<=5;i++){
            printf("XXX insira a %d palavras: XXX",i+1);
            scanf("%s", &vet_palavras[i]);
        }
        //entrada do valor a ser imprimido
        printf("XXX insira um numero dentre 0 e 5: XXX");
        scanf("%d", &n);
        if (n <=5) {   // testando se o valor e menor que 5
            for(i=0;i<=6;i++) {
                if(i==n)     {
                    strcpy(resul_palavras[i],vet_palavras[i]);
                }
            }
            printf("\n XXX %d = %s <------- \n",n,resul_palavras[n]);
        }
        else //printf para aviso de numero invalido digitado.
            printf("\n XXX numero inserido difenrente do intervalo entre 0 e 5 <------- \n");
        getch ();
        printf("\nXXX Digite Zero Para Sair XXX");
        scanf("%d",&op);
    }while(op!=0);
}

 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!