Ir ao conteúdo
  • Cadastre-se

Cristian Kirsch Foesch

Membro Júnior
  • Posts

    15
  • Cadastrado em

  • Última visita

posts postados por Cristian Kirsch Foesch

  1. Pessoal eu tenho esse código que esta compilando mas quando vou executar alguma das funções ele trava, alguém  pode me ajudar?

     

    #include <stdio.h> 
    #include <stdlib.h> 
    #include <string.h>
    #include <math.h> 
    
    typedef struct lista{
    	int info;
    	struct lista *prox;
     }Lista;
    
    Lista *cria(){
    	return NULL;
    }
    
    
    Lista* insere_ordenado (Lista*l, int v){
        Lista* novo = cria ();
        Lista* ant = NULL;
        Lista* p = l;
    while (p!=NULL && p->info < v){
    	ant=p;
    	p=p->prox;
    }
    if(ant==NULL){
    	novo->prox=l;
    	l=novo;
    }
    else {
    	novo->prox= ant->prox;
    	ant->prox=novo;
    }
    return l;
    }
    
    Lista *conecta(Lista* l1, Lista *l2){
    	lista*p,*q;
    	
    if(l1=NULL) return l2;
    	p=l1;
    do{q=p;
    	p=p->prox;
    	}
    while(p!=NULL);
    	q->prox=l2;
    	
    return l1;
    }
    
    Lista *separa(Lista*l,int n){
    	lista *p, *q;
    	
    	for(p=l;p!=NULL;p=p->prox)
    	   if(p->info==n){
    	   	q=p->prox=NULL;
    	   }
    	return q; 
    }
       
    Lista* constroi (int n,int* v){
    	Lista*p;
    	Lista*q;
    	int i;
    	q=NULL;
    for(i=n-1;i<=0;i--)
    {p=(Lista*)malloc(sizeof(Lista));
    	p->prox=q;
    	p->info=v[i];
    	q=p;
    }
    return q;
    }
    
    Lista* retira_prefixo (Lista* l, int n) {
    	Lista* p;
    	Lista* q;
    	int m=1;
    	p=l;
    	while (p != NULL && m<=n) {
    		m=m+1;
    		q=p->prox;
    		free(p);
    		p=q;
    		}
    		return p;
    }
    
    void opções (){
    	printf ("Escolha a opcao\n");
    	printf ("1 - Inserir um dado\n");
    	printf ("2 - Conecta listas \n");
    	printf ("3 - Separa listas\n ");
    	printf ("4 - Retirar um Elemento\n");
    	printf ("5 - Insere Ordenado\n");
    	printf ("6 - Sair\n");
    	printf ("Digite um valor fora da lista para repetir o menu\n");
    }
    
    main ()
    {
    	Lista *l,*l1,*l2=NULL, *ret;	
    	int op, a, x, v;	
    	opções ();
    	scanf ("%d",&op);
    
    	while (op!=6){
    		switch (op){
    		case 1:
    			printf ("Digite o valor\n");	
    			scanf ("%d",&a);
    			l=insere_ordenado(l,a);
    		break;
    		case 2:printf ("Digite o valor da lista 1\n");	
    			   scanf ("%d",&a);
    	    	l1=insere_ordenado(l,a);
    		printf ("Digite o valor da lista 2 \n");	
    		scanf ("%d",&a);
    		 	l2=insere_ordenado(l,a);
    		l=conecta (l1,l2); break;
    		case 3: printf ("Digite o valor aonde voce quer separar a lista\n");	
    			scanf ("%d",&a);
    		l=separa (l,a); break;
    		case 4: 
    			printf ("Informe o valor para remover da lista\n");
    			scanf ("%d",&v);
    			ret=retira_prefixo (l,v);break;
    		case 5:printf ("Informe o valor para remover da lista\n");
    			scanf ("%d",&v); 
    		l=insere_ordenado (l,v);break;
    		default: printf ("\nOpcao invalida\n\n");
    			opções();
    		}
    	printf ("\nInforme a opcao\n");
    	scanf ("%d",&op);
    }
    system ("pause");	
    } 

     

  2. @devair1010 Eu tenho esse código aqui que fiz agora que ele compila mas quando eu vou realizar alguma função ele fecha, pode me ajudar, acho que esta com menos erros

     

    #include <stdio.h> 
    #include <stdlib.h> 
    #include <string.h>
    #include <math.h> 
    
    typedef struct lista{
    	int info;
    	struct lista *prox;
     }Lista;
    
    Lista *cria(){
    	return NULL;
    }
    
    
    Lista* insere_ordenado (Lista*l, int v){
        Lista* novo = cria ();
        Lista* ant = NULL;
        Lista* p = l;
    while (p!=NULL && p->info < v){
    	ant=p;
    	p=p->prox;
    }
    if(ant==NULL){
    	novo->prox=l;
    	l=novo;
    }
    else {
    	novo->prox= ant->prox;
    	ant->prox=novo;
    }
    return l;
    }
    
    Lista *conecta(Lista* l1, Lista *l2){
    	lista*p,*q;
    	
    if(l1=NULL) return l2;
    	p=l1;
    do{q=p;
    	p=p->prox;
    	}
    while(p!=NULL);
    	q->prox=l2;
    	
    return l1;
    }
    
    Lista *separa(Lista*l,int n){
    	lista *p, *q;
    	
    	for(p=l;p!=NULL;p=p->prox)
    	   if(p->info==n){
    	   	q=p->prox=NULL;
    	   }
    	return q; 
    }
       
    Lista* constroi (int n,int* v){
    	Lista*p;
    	Lista*q;
    	int i;
    	q=NULL;
    for(i=n-1;i<=0;i--)
    {p=(Lista*)malloc(sizeof(Lista));
    	p->prox=q;
    	p->info=v[i];
    	q=p;
    }
    return q;
    }
    
    Lista* retira_prefixo (Lista* l, int n) {
    	Lista* p;
    	Lista* q;
    	int m=1;
    	p=l;
    	while (p != NULL && m<=n) {
    		m=m+1;
    		q=p->prox;
    		free(p);
    		p=q;
    		}
    		return p;
    }
    
    void opções (){
    	printf ("Escolha a opcao\n");
    	printf ("1 - Inserir um dado\n");
    	printf ("2 - Conecta listas \n");
    	printf ("3 - Separa listas\n ");
    	printf ("4 - Retirar um Elemento\n");
    	printf ("5 - Insere Ordenado\n");
    	printf ("6 - Sair\n");
    	printf ("Digite um valor fora da lista para repetir o menu\n");
    }
    
    main ()
    {
    	Lista *l,*l1,*l2=NULL, *ret;	
    	int op, a, x, v;	
    	opções ();
    	scanf ("%d",&op);
    
    	while (op!=6){
    		switch (op){
    		case 1:
    			printf ("Digite o valor\n");	
    			scanf ("%d",&a);
    			l=insere_ordenado(l,a);
    		break;
    		case 2:printf ("Digite o valor da lista 1\n");	
    			   scanf ("%d",&a);
    	    	l1=insere_ordenado(l,a);
    		printf ("Digite o valor da lista 2 \n");	
    		scanf ("%d",&a);
    		 	l2=insere_ordenado(l,a);
    		l=conecta (l1,l2); break;
    		case 3: printf ("Digite o valor aonde voce quer separar a lista\n");	
    			scanf ("%d",&a);
    		l=separa (l,a); break;
    		case 4: 
    			printf ("Informe o valor para remover da lista\n");
    			scanf ("%d",&v);
    			ret=retira_prefixo (l,v);break;
    		case 5:printf ("Informe o valor para remover da lista\n");
    			scanf ("%d",&v); 
    		l=insere_ordenado (l,v);break;
    		default: printf ("\nOpcao invalida\n\n");
    			opções();
    		}
    	printf ("\nInforme a opcao\n");
    	scanf ("%d",&op);
    }
    system ("pause");	
    } 

     

    • Curtir 1
  3. Alguém pode me ajudar, por que ele não esta compilando?

    É para um trabalho

     

    #include <stdio.h> // Printf e Scanf
    #include <stdlib.h> // System Pause
    #include <string.h> // palavras
    #include <math.h> // formulas
    
    typedef struct lista{
    	int info;
    	struct lista *prox;
    }Lista;
    
    Lista *insere (Lista*l, int i){
    	Lista *novo=(Lista*) malloc(sizeof(Lista));
    	novo->info=i;
    	novo->prox=l;
    	return novo;
    }
    
    void imprime (Lista*l){
    	Lista*p;
    	for (p=l;p!=NULL;p=p->prox){
    		printf ("| %d |",p->info);
    	}
    	printf (" \n");
    }
    
    Lista* ins_ordenado(Lista* L, int mat, char* nome, float nota)
    {
    Lista* p = L;
    Lista ant = NULL;
    Lista* novo = (Lista*)malloc(sizeof(Lista));
    novo ->mat = mat;
    strcpy(novo->nome, nome);
    novo->media = nota;
    novo->prox = NULL;
    if (p==NULL) return novo;
    while ((p!=NULL) && (novo->mat > p->mat))
    { ant = p; p = p->prox;}
    if (ant == NULL) {novo->prox = p; return novo;}
    novo ->prox = ant->prox;
    ant->prox = novo;
    return L;
    }
    
    Elemento* lst_cria (void)
    {
     return NULL;
    }
    
    Lista* separa (Lista* l, int n) 
    {
         Lista* p;   
         Lista* q;   
    
           for (p = l; p != NULL ; p = p->prox)
    
              if (p->info == n) 
              {
                  q = p->prox; 
                  p->prox = NULL; 
              return q;
              }
    return NULL;
    }
    
    Lista* conecta (Lista*l,Lista*l2){
    Lista *p,*q,
    if (l1==NULL) return l2;
    p=l1;
    do { q=p;
    p=p -> prox;
    }
    while (p!=NULL);
    q-> prox=l2;
    return l1;
    }
    
    Lista* transformar (int n, int* v)
    {
    Lista* p; 
    Lista* q; 
    int i;
    q = NULL;
    for(i=n-1; i>=0; i--)
    { p = (Lista*) malloc(sizeof(Lista));
    p->prox = q;
    p->info = v[i];
    q = p;
    }
    return q;
    }
    
    Lista* retira_prefixo (Lista* l, int n)
    {
    Lista* p; 
    Lista* q; 
    int m = 1;
    p = l;
    while(p != NULL && m <= n)
    { m = m+1;
    q = p->prox;
    free(p);
    p = q;
    }
    return p;
    }
    
    void opções (){
    	printf ("Escolha a opcao\n");
    	printf ("1 - Inserir Lista \n");
    	printf ("2 - Imprimir lista\n");
    	printf ("3 - Ordenar Lista\n");
    	printf ("4 - Criar Lista \n");
    	printf ("5 - Separar Lista \n");
        printf ("6 - Conectar Lista n");
        printf ("7 - Transformar Lista n");
    	printf ("8 - Conectar Lista n");
    	printf ("9 - Sair\n"); 
        printf ("Digite um valor: ");
    		}

     

    • Curtir 1
  4. Ola pessoal, tudo bem?

    Eu tenho esse código sobre lista e a professora pediu para implementar essas funções: 

    1 inserir ordenado

    2 dividir lista

    3 conectar listas

    4 copiar vetor para lista

    5 remover do grupo de valores

    Mas o problema é que ela não explicou, alguém poderia por favor me ajudar?

     

    #include <stdio.h>
    #include <stdlib.h>
    
    struct Node{
    	int num;
    	struct Node *prox;
    }; 
    typedef struct Node node;
    
    int tam;
    
    void inicia(node *LISTA);
    int menu(void);
    void opcao(node *LISTA, int op);
    node *criaNo();
    void insereFim(node *LISTA);
    void insereInicio(node *LISTA);
    void exibe(node *LISTA);
    void libera(node *LISTA);
    void insere (node *LISTA);
    node *retiraInicio(node *LISTA);
    node *retiraFim(node *LISTA);
    node *retira(node *LISTA);
    
    int main(void)
    {
    	node *LISTA = (node *) malloc(sizeof(node));
    	if(!LISTA){
    		printf("Sem memoria disponivel!\n");
    		exit(1);
    	}else{
    	inicia(LISTA);
    	int opt;
    	
    	do{
    		opt=menu();
    		opcao(LISTA,opt);
    	}while(opt);
    
    	free(LISTA);
    	return 0;
    	}
    }
    
    void inicia(node *LISTA)
    {
    	LISTA->prox = NULL;
    	tam=0;
    }
    
    int menu(void)
    {
    	int opt;
    	
    	printf("Escolha a opcao\n");
    	printf("0. Sair\n");
    	printf("1. Zerar lista\n");
    	printf("2. Exibir lista\n");
    	printf("3. Adicionar node no inicio\n");
    	printf("4. Adicionar node no final\n");
    	printf("5. Escolher onde inserir\n");
    	printf("6. Retirar do inicio\n");
    	printf("7. Retirar do fim\n");
    	printf("8. Escolher de onde tirar\n");
    	printf("Opcao: "); scanf("%d", &opt);
    	
    	return opt;
    }
    
    void opcao(node *LISTA, int op)
    {
    	node *tmp;
    	switch(op){
    		case 0:
    			libera(LISTA);
    			break;
    			
    		case 1:
    			libera(LISTA);
    			inicia(LISTA);
    			break;
    		
    		case 2:
    			exibe(LISTA);
    			break;
    		
    		case 3:
    			insereInicio(LISTA);
    			break;		
    			
    		case 4:
    			insereFim(LISTA);
    			break;
    			
    		case 5:
    			insere(LISTA);
    			break;
    		
    		case 6:
    			tmp= retiraInicio(LISTA);
    			printf("Retirado: %3d\n\n", tmp->num);
    			break;
    			
    		case 7:
    			tmp= retiraFim(LISTA);
    			printf("Retirado: %3d\n\n", tmp->num);
    			break;
    		
    		case 8:
    			tmp= retira(LISTA);
    			printf("Retirado: %3d\n\n", tmp->num);
    			break;
    		
    		default:
    			printf("Comando invalido\n\n");
    	}
    }
    
    int vazia(node *LISTA)
    {
    	if(LISTA->prox == NULL)
    		return 1;
    	else
    		return 0;
    }
    
    node *aloca()
    {
    	node *novo=(node *) malloc(sizeof(node));
    	if(!novo){
    		printf("Sem memoria disponivel!\n");
    		exit(1);
    	}else{
    		printf("Novo elemento: "); scanf("%d", &novo->num);
    		return novo;
    	}
    }
    
    
    void insereFim(node *LISTA)
    {
    	node *novo=aloca();
    	novo->prox = NULL;
    	
    	if(vazia(LISTA))
    		LISTA->prox=novo;
    	else{
    		node *tmp = LISTA->prox;
    		
    		while(tmp->prox != NULL)
    			tmp = tmp->prox;
    		
    		tmp->prox = novo;
    	}
    	tam++;
    }
    
    void insereInicio(node *LISTA)
    {
    	node *novo=aloca();	
    	node *oldHead = LISTA->prox;
    	
    	LISTA->prox = novo;
    	novo->prox = oldHead;
    	
    	tam++;
    }
    
    void exibe(node *LISTA)
    {
    	
    	if(vazia(LISTA)){
    		printf("Lista vazia!\n\n");
    		return ;
    	}
    	
    	node *tmp;
    	tmp = LISTA->prox;
    	printf("Lista:");
    	while( tmp != NULL){
    		printf("%5d", tmp->num);
    		tmp = tmp->prox;
    	}
    	printf("\n        ");
    	int count;
    	for(count=0 ; count < tam ; count++)
    		printf("  ^  ");
    	printf("\nOrdem:");
    	for(count=0 ; count < tam ; count++)
    		printf("%5d", count+1);
    	
    		
    	printf("\n\n");
    }
    
    void libera(node *LISTA)
    {
    	if(!vazia(LISTA)){
    		node *proxNode,
    			  *atual;
    		
    		atual = LISTA->prox;
    		while(atual != NULL){
    			proxNode = atual->prox;
    			free(atual);
    			atual = proxNode;
    		}
    	}
    }
    
    void insere(node *LISTA)
    {
    	int pos,
    		count;
    	printf("Em que posicao, [de 1 ate %d] voce deseja inserir: ", tam);
    	scanf("%d", &pos);
    	
    	if(pos>0 && pos <= tam){
    		if(pos==1)
    			insereInicio(LISTA);
    		else{
    			node *atual = LISTA->prox,
    				 *anterior=LISTA; 
    			node *novo=aloca();
    				 
    			for(count=1 ; count < pos ; count++){
    					anterior=atual;
    					atual=atual->prox;
    			}
    			anterior->prox=novo;
    			novo->prox = atual;
    			tam++;
    		}
    			
    	}else
    		printf("Elemento invalido\n\n");		
    }
    
    node *retiraInicio(node *LISTA)
    {
    	if(LISTA->prox == NULL){
    		printf("Lista ja esta vazia\n");
    		return NULL;
    	}else{
    		node *tmp = LISTA->prox;
    		LISTA->prox = tmp->prox;
    		tam--;
    		return tmp;
    	}
    				
    }
    
    node *retiraFim(node *LISTA)
    {
    	if(LISTA->prox == NULL){
    		printf("Lista ja vazia\n\n");
    		return NULL;
    	}else{
    		node *ultimo = LISTA->prox,
    			 *penultimo = LISTA;
    			 
    		while(ultimo->prox != NULL){
    			penultimo = ultimo;
    			ultimo = ultimo->prox;
    		}
    			 
    		penultimo->prox = NULL;
    		tam--;
    		return ultimo;		
    	}
    }
    
    node *retira(node *LISTA)
    {
    	int opt,
    		count;
    	printf("Que posicao, [de 1 ate %d] voce deseja retirar: ", tam);
    	scanf("%d", &opt);
    	
    	if(opt>0 && opt <= tam){
    		if(opt==1)
    			return retiraInicio(LISTA);
    		else{
    			node *atual = LISTA->prox,
    				 *anterior=LISTA; 
    				 
    			for(count=1 ; count < opt ; count++){
    				anterior=atual;
    				atual=atual->prox;
    			}
    			anterior->prox=atual->prox;
    		tam--;
    		return atual;
    		}		
    	}else{
    		printf("Elemento invalido\n\n");
    		return NULL;
    	}
    }

     

  5. Galera, quando vou imprimir uma struct ela da erro e fecha o programa, como resolver?

    								/*seminario
    							Comandos = if, switch
    							Funções = soma, troca
    							Vetores e tipo construído
    							Como criar e preencher estrutura*/
    #include <stdio.h>
    #include <stdlib.h>
    
    struct ficha_aluno{
    	float nome;
    	float idade;
    	float matricula;
    };
    
    struct ficha_aluno aluno;
    float media (int n, float *vnotas); //Declarando a função media
    int main (void)
    {
    printf("                                          Digite o nome do aluno(a):\n");
    scanf("%s", &aluno.nome);
    printf("                                          Digite a idade do aluno:\n");
    scanf("%f", &aluno.idade);
    printf("                                        Digite o numero de matricula:\n");
    scanf("%f", &aluno.matricula);
    printf("-----------------------------------------------------------------------------------------------------------------------\n\n");
    
    float vnotas[4];
    int semestre;
    float media_notas;															
    int i;
    
    	for (i = 0; i < 4; i++) //Leitura das medias
    {
    
    	printf("                                         Digite os valores das notas:\n");
    	scanf("%f", &vnotas[i]);    
      }                             //i
    printf("-----------------------------------------------------------------------------------------------------------------------\n");
    printf("                          Digite o ano de ingresso para saber em que semestre o aluno esta:\n\n");
    scanf("%d", &semestre);
     if(semestre <2017){
     	printf("error 404\n");
     	printf("Semestre inserido invalido\n");
     }
    	switch( semestre ){
    		case 2017 :    
    		printf("                                      O aluno esta no Segundo semestre\n");
    		break;
    		case 2018 :
    		printf("                                      O aluno esta no Primeiro semestre\n");
    		break;	
    	}
    //Chamada da função
    media_notas = media(4,vnotas); 
    	printf("\nQuadro de notas\n");
    	printf("Nome:\n %s", aluno.nome);
     	printf( "\n                                        Media = %.1f \n", media_notas );
    
      
    	// Se a media for maior que 7, imprime que o aluno esta aprovado 
    	if(media_notas >=7){
    				printf("Aluno Aprovado :)\n");
    		printf("O aluno pode prosseguir para o proximo semestre\n");}
    	
    	// Se a media for menor que 7, imprime que o aluno esta repovado 
    	else{
    
    		printf("Aluno Reprovado :(\n");   		
       		printf("O aluno deve refazer a materia ou fazer a resolucao\n\n");}
    system("pause");
    return 0;
    }
    /*Função para cálculo da média 
       Parâmetros: 
          Recebe a quantidade de elementos n
          Recebe o endereço inicial do vetor notas em *vnotas
       Retorno: 
         Retorna a media na variavel m */
    float media (int n, float *vnotas)
    {
    int i;
    //Realiza a soma das notas   
    float m = 0, soma = 0;
    	for (i = 0; i < n; i++)
    		soma = soma + vnotas[i]; 
    //Realiza a divisão das notas pelo numero de elementos
    m = soma / n; 
    //Retorna a media
    	return m;
    }

     

  6. Galera eu quero preencher uma struct usando o scanf logo antes de digitar o ano para descobrir o semestre, e imprimir junto com o resultado (aprovado ou reprovado), mas não estou conseguindo, alguem pode ajudar? Gratidão

    /*seminario
    							Comandos = if, switch
    							Funções = soma, troca
    							Vetores e tipo construído
    							Como criar e preencher estrutura*/
    #include <stdio.h>
    #include <stdlib.h>
    typedef struct{ //Tentativa de criar e preencher a struct
    	char Nome;
    }Nome;
    
    float media (int n, float *vnotas); //Declarando a função media
    int main (void)
    {
    float vnotas[4];
    int semestre;
    float media_notas;															
    int i;
    
    	for (i = 0; i < 4; i++) //Leitura das medias
    {
    	printf("Digite os valores das notas: ");
    	scanf("%f", &vnotas[i]);
      }
    
    printf("Digite o ano de ingresso para saber em que semestre o aluno esta:\n");
    scanf("%d", &semestre);
     if(semestre <2017){
     	printf("error 404\n");
     	printf("Semestre inserido invalido\n");
     }
    	switch( semestre ){
    		case 2017 :
    		printf("O aluno esta no Segundo semestre\n");
    		break;
    		case 2018 :
    		printf("O aluno esta no Primeiro semestre\n");
    		break;	
    	}
    //Chamada da função
    media_notas = media(4,vnotas); 
       printf ( "\nMedia = %.1f \n", media_notas );
      
    	// Se a media for maior que 7, imprime que o aluno esta aprovado 
    	if(media_notas >=7){
    		printf("Aluno Aprovado\n");
    		printf("O aluno pode prosseguir para o proximo semestre\n");}
    	// Se a media for menor que 7, imprime que o aluno esta repovado 
    	else{
    		printf("Aluno Reprovado\n");   		
       		printf("O aluno deve refazer a materia ou fazer a resolucao\n\n");}
    system("pause");
    return 0;
    }
    /*Função para cálculo da média 
       Parâmetros: 
          Recebe a quantidade de elementos n
          Recebe o endereço inicial do vetor notas em *vnotas
       Retorno: 
         Retorna a media na variavel m */
    float media (int n, float *vnotas)
    {
    int i;
    //Realiza a soma das notas   
    float m = 0, soma = 0;
    	for (i = 0; i < n; i++)
    		soma = soma + vnotas[i]; 
    //Realiza a divisão das notas pelo numero de elementos
    m = soma / n; 
    //Retorna a media
    	return m;
    }
    Nome SetNome(char Nome){
    	printf("Digite o nome do Aluno\n");
    	scanf("%c", &Nome);
    }

     

    • Curtir 1
  7. Pessoal estou tentando criar uma struct que le o nome do aluno, e o imprime junto com o resultado final que é aprovado ou reprovado mas esta dando erro.

    								/*seminario
    							Comandos = if, switch
    							Funções = soma, troca
    							Vetores e tipo construído
    							Como criar e preencher estrutura*/
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct{ //Tentativa de criar e preencher a struct
    	float Nome;
    }Nome;
    Nome SetNome(float Nome){
    	printf("Digite o nome do Aluno\n");
    	scanf("%f", &Nome);
    }
    
    float media (int n, float *vnotas); //Declarando a função media
    int main (void)
    {
    float vnotas[4];
    int semestre;
    float media_notas;															
    int i;
    
    	for (i = 0; i < 4; i++) //Leitura das medias
    {
    	printf("Digite os valores das notas: ");
    	scanf("%f", &vnotas[i]);
      }
    printf("Digite o ano de ingresso para saber em que semestre o aluno esta:\n");
    scanf("%d", &semestre);
     if(semestre <2017){
     	printf("error 404\n");
     	printf("Semestre inserido invalido\n");
     }
    	switch( semestre ){
    		case 2017 :
    		printf("O aluno esta no Segundo semestre\n");
    		break;
    		case 2018 :
    		printf("O aluno esta no Primeiro semestre\n");
    		break;	
    	}
    //Chamada da função
    media_notas = media(4,vnotas); 
       printf ( "\nMedia = %.1f \n", media_notas );
      
    	// Se a media for maior que 7, imprime que o aluno esta aprovado 
    	if(media_notas >=7){
    		printf("Aluno Aprovado\n");
    		printf("O aluno pode prosseguir para o proximo semestre\n");}
    	// Se a media for menor que 7, imprime que o aluno esta repovado 
    	else{
    		printf("Aluno Reprovado\n");   		
       		printf("O aluno deve refazer a materia ou fazer a resolucao\n\n");}
    system("pause");
    return 0;
    }
    /*Função para cálculo da média 
       Parâmetros: 
          Recebe a quantidade de elementos n
          Recebe o endereço inicial do vetor notas em *vnotas
       Retorno: 
         Retorna a media na variavel m */
    float media (int n, float *vnotas)
    {
    int i;
    //Realiza a soma das notas   
    float m = 0, soma = 0;
    }
    	for (i = 0; i < n; i++)
    		soma = soma + vnotas[i]; 
    //Realiza a divisão das notas pelo numero de elementos
    m = soma / n; 
    //Retorna a media
    	return m;
    }

     

  8. Pessoal gostaria de saber se é possivel transformar meu vetor vnotas[4] em uma struct 

     

                                        /*seminario
                                Comandos = if, switch
                                Funções = soma, troca
                                Vetores e tipo construído
                                Como criar e preencher estrutura*/
    #include <stdio.h>
    #include <stdlib.h>

    float media (int n, float *vnotas); //Declarando a função media
    int main (void)
    {
    float vnotas[4];
    int semestre;
    float media_notas;                                                            
    int i;

        for (i = 0; i < 4; i++) //Leitura das medias
    {
        printf("Digite os valores das notas: ");
        scanf("%f", &vnotas);
      }
    printf("Digite o ano de ingresso para saber em que semestre o aluno esta:\n");
    scanf("%d", &semestre);
     if(semestre <2017){
         printf("error 404\n");
         printf("Semestre inserido invalido\n");
     }
        switch( semestre ){
            case 2017 :
            printf("O aluno esta no Segundo semestre\n");
            break;
            case 2018 :
            printf("O aluno esta no Primeiro semestre\n");
            break;    
        }
    //Chamada da função
    media_notas = media(4,vnotas); 
       printf ( "\nMedia = %.1f \n", media_notas );
      
        // Se a media for maior que 7, imprime que o aluno esta aprovado 
        if(media_notas >=7){
            printf("Aluno Aprovado\n");
            printf("O aluno pode prosseguir para o proximo semestre\n");}
        // Se a media for menor que 7, imprime que o aluno esta repovado 
        else{
            printf("Aluno Reprovado\n");           
               printf("O aluno deve refazer a materia ou fazer a resolucao\n\n");}
    system("pause");
    return 0;
    }
    /*Função para cálculo da média 
       Parâmetros: 
          Recebe a quantidade de elementos n
          Recebe o endereço inicial do vetor notas em *vnotas
       Retorno: 
         Retorna a media na variavel m */
    float media (int n, float *vnotas)
    {
    int i;
    //Realiza a soma das notas   
    float m = 0, soma = 0;
        for (i = 0; i < n; i++)
            soma = soma + vnotas
    //Realiza a divisão das notas pelo numero de elementos
    m = soma / n; 
    //Retorna a media
        return m;
    }

  9. Galera estou fazendo esse codigo para a faculdade e precisso fazer uma função de troca, e criar e preencher uma estrutura.

    Não sei se ja não criei e preenchi uma estrutura se sim por gentileza mostre onde.

    E gostaria de uma função de troca que seja util nesse codigo. Gratidão

     

        /*seminario
                                Comandos = if, switch
                                Funções = soma, troca
                                Vetores e tipo construído
                                Como criar e preencher estrutura*/
    #include <stdio.h>
    #include <stdlib.h>

    float media (int n, float *vnotas); //Declarando a função media
    int main (void)
    {
    float vnotas[4];
    int semestre;
    float media_notas;                                                            
    int i;

        for (i = 0; i < 4; i++) //Leitura das medias
    {
        printf("Digite os valores das notas: ");
        scanf("%f", &vnotas);
      }
    printf("Digite o ano de ingresso para saber em que semestre o aluno esta:\n");
    scanf("%d", &semestre);
     if(semestre <2017){
         printf("error 404\n");
         printf("Semestre inserido invalido\n");
     }
        switch( semestre ){
            case 2017 :
            printf("O aluno esta no Segundo semestre\n");
            break;
            case 2018 :
            printf("O aluno esta no Primeiro semestre\n");
            break;    
        }
    //Chamada da função
    media_notas = media(4,vnotas); 
       printf ( "\nMedia = %.1f \n", media_notas );
      
        // Se a media for maior que 7, imprime que o aluno esta aprovado 
        if(media_notas >=7){
            printf("Aluno Aprovado\n");
            printf("O aluno pode prosseguir para o proximo semestre\n");}
        // Se a media for menor que 7, imprime que o aluno esta repovado 
        else{
            printf("Aluno Reprovado\n");           
               printf("O aluno deve refazer a materia ou fazer a resolucao\n\n");}
    system("pause");
    return 0;
    }
    /*Função para cálculo da média 
       Parâmetros: 
          Recebe a quantidade de elementos n
          Recebe o endereço inicial do vetor notas em *vnotas
       Retorno: 
         Retorna a media na variavel m */
    float media (int n, float *vnotas)
    {
    int i;
    //Realiza a soma das notas   
    float m = 0, soma = 0;
        for (i = 0; i < n; i++)
            soma = soma + vnotas
    //Realiza a divisão das notas pelo numero de elementos
    m = soma / n; 
    //Retorna a media
        return m;
    }

    • Curtir 1
    • Haha 1
  10. Galera seguinte, eu sei que não é o objetivo do forum, mas estou a algum tempo sem programar e preciso fazer um trabalho em C com os seguintes "comandos" nele

        Comandos = if, switch
        Funções = soma, troca
        Vetores e tipo construído
        Como criar e preencher estrutura

    • Curtir 1

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!