Jump to content
Fórum Script Brasil
  • 0

Estrutura de Repetição


MarcelloFelipe
 Share

Question

Bom dia a todos, o proposito do meu codigo e simples,   ele vai pegar o nome de um funcionario e a nota que o funcionario ganhou.....   depois quero que ele imprima todos os nomes que foram digitados..   mas essa parte de imprimir os nomes n consigo fazer...  por que n consigo pegar os nomes que estao dentro do for...
#include <stdio.h>
#include <stdlib.h>
#include <string>

void messagem(){
     printf("\tObrigado, Volte Sempre!!");
     printf("\n\n\n\n\n\n\n");
}
main(){
       int i;
       int a;
       char funcionario[30];      
       for(i=0; i<4; i++){ 
           printf("\n\t\t\tPesquisa de Satisfacao\n\n\n");
           printf("Nome do Funcionario: ");
           scanf("%s",&funcionario[i]);  
           printf("De uma nota de 0 a 10: ");
           scanf("%i",&a);
           printf("\n");
           system("cls");
       }
       printf("\n\t\t\tFuncionarios Votados na Pesquisa\n");
       messagem();
       system("pause");     
}

 

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Olá!

 

Sou iniciante em C e tenho andado um pouco parado nas ultimas semanas, mas vou tentar lhe ajudar.

 

- |3|fatal error: string: Arquivo ou diretório não encontrado – aqui o erro foi o de que você apenas esqueceu “.h” no final de string

 

- para os dois alertas seguintes, basta colocar, int main() e no final antes da ultima chave de fechamento return 0;

 

|9|warning: return type defaults to ‘int’ - como você não definiu o tipo de retorno da função main(), por padrão aqui pelo menos o compilador o definiu como “ int ”

 

|25|warning: control reaches end of non-void function - como o compilador pelo menos aqui definiu o tipo “ int ” para a função main(), o alerta está dizendo que o a função main() deveria ter um return para retornar algum valor.

 

- a maior parte das funções do tipo “system() “ fazem chamadas a componentes do sistema, sendo assim para aumentar a portabilidade do código entre diferentes sistemas, e para evitar possíveis problemas que tais chamadas possam causar, tente evitar fazer tais chamadas.

 

se o seu objetivo com system (“pause”); era o de evitar que a tela do programa se feche, você pode tentar substituir system(“pause”); por getchar();

com relação ao system (“cls”); não tenho por hora nenhuma recomendação de com o que substituí-la.

 

- na sua função menssagem(), a forma como você a declarou e usou está, OK

 

Com relação ao código, neste caso você deve usar:

 

- um vetor para armazenar os números ( neste caso as notas do funcionários )

 

int a [ 4 ]

 

- um vetor de caracteres para armazenar uma “string” ( neste caso o nome de um funcionário )

 

char funcionario [ 30 ]

 

- um vetor de strings para armazenar os nomes dos funcionários ( uma lista com o nome dos funcionários )

 

char funcionario [ 4 ] [ 30 ]

 

pois da forma que você fez, int a; – char funcionario [ 30 ]; - a cada vez que você digitar um novo nome e uma nova nota os valores armazenados anteriormente vão ser apagados e substituídos pelos novos, não sei se você já teve alguma introdução a depuração - debugger, mas caso não, lhe aconselho a tentar aprender e ver como os valores estão sendo modificados no seu programa.

 

- sendo que usando char funcionario [30]; ou char funcionario [4] [30]; muito provavelmente vai aparecer este alerta, |19|warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[30] – este alerta está relacionado ao fato de que o primeiro elemento de um vetor de ( strings e de caracteres ) é uma referencia para o restante dos elementos do vetor não sendo necessário o uso de “ & ”

 

- Aqui “ scanf("%i",&a); ” embora funcione, o código de formatação mais adequado para números inteiros seria %d, e como você vai trabalhar com um vetor para armazenar números inteiros, scanf ( "%d",&a [ i ] );

 

- e com relação ao final do seu programa crie um laço for que irá varrer os vetores que você criou, e exibir os resultados

 

Bom, por hora é só, tente aplicar as dicas acima e veja se resolve os seus problemas . . .

 

Ubuntu 14.04  GNU GCC 4.8  CodeBlocks 13.12

 

Espero Ter Ajudado ! ! !

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.1k
×
×
  • Create New...