Ir para conteúdo
Fórum Script Brasil
  • 0

Estrutura de Repetição


MarcelloFelipe

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...