Ir ao conteúdo

Posts recomendados

Postado

Pessoal boa noite, sou novo no mun do de Ti e estou  fazendo um exercicio mais não estou conseguindo terminar,

 

Solicite ao usuário os dados da matriz A, de 3 linhas e 4 colunas.  Construa, a partir de A, a matriz transposta T, de 4 linhas e 3 colunas.  Mostre na tela as duas matrizes. Importante: é necessário, nesse programa, que você declare duas matrizes distintas, A e T.

 

escrevi o seguinte programa, mais empaquei, alguem me da uma dica que eu possa continuar?

Citação

#include <stdio.h>
#include <stdlib.h>

int main(){
	//Solicite ao usuário os dados da matriz A, de 3 linhas e 4 colunas
	int Matriz [3][4];
	for(int lin=0;lin<3;lin++){
	for(int col=0;col<4;col++){
		printf("Entre com os valores da Matriz A[%d][%d]:",lin,col);
		scanf("%d",&Matriz[lin][col]);
	}
	}
	printf("Matriz lida \n");
	for(int lin=0;lin<3;lin++){
	for(int col=0;col<4;col++){
		printf("%4d", Matriz[lin][col],lin,col);
}
printf("\n");
}
}

 

 

  • Curtir 1
Postado
#include <stdio.h>
#define N 3
#define M 4
void recebeMatriz(float matriz[N][M]);
void imprimeMatriz(float matriz[N][M]);
void transporMatriz(float matriz[N][M], float transposta[M][N]);
void imprimeTransposta(float transposta[M][N]);
int main() {
    float matriz[N][M], transposta[M][N];
    recebeMatriz(matriz);
    imprimeMatriz(matriz);
    transporMatriz(matriz,transposta);
    printf("A transposta e:\n");
    imprimeTransposta(transposta);
    return 0;
}
void recebeMatriz(float matriz[N][M]) { // referência
    int i, j;
    for(i = 0; i < N; i++)
        for(j = 0; j < M; j++) {
           // printf("Entre com elemento (%d,%d): ", i, j);
           // scanf("%f", &matriz[i][j]);
           matriz[i][j]=i+j;
        }
}
void imprimeMatriz(float matriz[N][M]) {
    int i, j;
    printf("\nMatriz %dx%d:\n",N,M);
    for(i = 0; i < N; i++)
        for(j = 0; j < M; j++)
            printf("%g%c", matriz[i][j], (j != M-1)? '\t' : '\n');
}
void transporMatriz(float matriz[N][M], float transposta[M][N]) {
    int i, j;
    for(i = 0; i < N; i++)
        for(j = 0; j < M; j++)
            transposta[j][i] = matriz[i][j];
}
void imprimeTransposta(float transposta[M][N]) {
    int i, j;
    printf("\nMatriz %dx%d:\n",M,N);
    for(i = 0; i < M; i++)
        for(j = 0; j < N; j++)
            printf("%g%c", transposta[i][j], (j != N-1)? '\t' : '\n');
}

 

  • Obrigado 1
Postado

@herbertbahia no caso o meu professor pediu para eu alterar meu codigo em c de uma calculadora.

adicionado 0 minutos depois

mas ela ta padronixada para receber só tres notas agora ele quer que eu mude para receber a quantidade que o usuario quiser de notas.

adicionado 0 minutos depois

vou enviar o codigo 

adicionado 1 minuto depois

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define MAX_ALUNOS 50


int notas = 10;

typedef struct{
    char nome[50];
    float notas[10];
    int ativo;

} Aluno;

Aluno alunos[50];
void manup();
void menu();
void menu2();
void Cadastrar();
void remover();
void reprovados();
void aprovados();
void pesquisar();
void listar();
void operacoes_basicas();


int main(int argc, char const *argv[])
{
  manup();
    return 0;
}
void manup(){
int pa;
bool sair = false;
do{
system("cls");
printf("\t\tselecione seu perfil de acordo com seu uso\t\t\n");
printf("digite 1 para entrada de professor e 2 para caso queira o perfil de aluno\n");
scanf("%d", &pa);
    getchar();
    switch (pa){
    case 1: menu();
    break;
     case 2:menu2();
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
        }getchar();
}while(!sair);
  }
void menu(){
    bool sair = false;
    int op;
    do {
        system("cls");
        printf("----------MENU PRINCIPAL----------\n[1]CADASTRAR\n[2]REMOVER\n[3]REPROVADOS\n[4]APROVADOS\n[5]PESQUISAR\n[6]LISTAR\n[7]OPERACOES BASICAS\n[8]SAIR\n");

        scanf("%d", &op);
        getchar();
        switch (op){
        case 1:
            Cadastrar();
            break;
        case 2:
            remover();
            break;
        case 3:
            reprovados();
            break;
        case 4:
            pesquisar();
            break;
        case 5:
            listar();
            break;
        case 6:
            aprovados();
            break;
        case 7:
      operacoes_basicas();
      break;
        case 8:
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
        }
        getchar();
    } while (!sair);
}

void Cadastrar(){

    char nome[50];
    float notas[10];
    int op;
    int i, a;

    do{
        system("cls");
        printf("\nInsira o nome do Aluno: ");
        fgets(nome, sizeof(nome), stdin);
        printf("Insira a quantidade de notas:\n");
        scanf("%d", &a);
        printf("Insira notas:\n");
        for (i = 0; i<a; i++)
            scanf("%f", &notas[a]);
        printf("\n1 - Continuar\n0 - Sair\n");
        scanf("%d", &op);
        getchar();
    } while (op != 0);
}

void remover(){
    int matricula;
    listar();
    printf("\n Digite a matricula do aluno a ser removido: ");
    scanf("%d", &matricula);
    --matricula;
    alunos[matricula].ativo = 0;
    printf("\n Aluno foi excluido com sucesso \n");
    getchar();
}

void reprovados(){
    system("cls");

    float media = 0;
    printf("\n LISTA DE ALUNOS REPROVADOS\n");
    for (int i = 0; i < MAX_ALUNOS; ++i)
    {
        if (alunos.ativo == 1)
        {
            media = 0;
            for (int i = 0; i < notas; ++i)
                media = media / 3;
            if (media<7.0)

            {

                printf("Matricula: %d\n", i + 1);
                printf("Nome: %s\n", alunos.nome);
                printf("1 prova: %0.2f\n", alunos.notas[0]);
                printf("2 prova: %0.2f\n", alunos.notas[1]);
                printf("3 prova: %0.2f\n", alunos.notas[2]);
                printf("Media do aluno: %f\n", media);
                media = 7 - media;
                printf("Falta para o aluno ser aprovado: %0.2f\n", media);
                printf("\n-------------\n");

            }

        }

    }
}

void aprovados(){
    system("cls");
    float media;
    printf("\n LISTA DE ALUNOS APROVADOS\n");
    for (int i = 0; i < MAX_ALUNOS; ++i)
    {
        if (alunos.ativo == 1)
        {
            media = 0;
            media = alunos.notas[0] + alunos.notas[1] + alunos.notas[2];
            media = media / 3;
            if (media>7.0)
            {
                printf("Matricula: %d\n", i + 1);
                printf("Nome: %s\n", alunos.nome);
                printf("1 prova: %0.2f\n", alunos.notas[0]);
                printf("2 prova: %0.2f\n", alunos.notas[1]);
                printf("3 prova: %0.2f\n", alunos.notas[2]);
                printf("Media do aluno: %f\n", media);
                printf("\n-------------\n");

            }
        }
    }
}

void pesquisar(){

    char nome[50];
    int op;
    do{
        system("cls");
        printf("\nDigite o nome do aluno para pesquisar: ");
        fgets(nome, sizeof(nome), stdin);
        for (int i = 0; i < MAX_ALUNOS; ++i)
        {
            if (strstr(alunos.nome, nome) != NULL)
            {
                printf("Matricula: %d\n", i + 1);
                printf("Nome: %s\n", alunos.nome);
                printf("1 prova: %0.2f\n", alunos.notas[0]);
                printf("2 prova: %0.2f\n", alunos.notas[1]);
                printf("3 prova: %0.2f\n", alunos.notas[2]);
                printf("\n-------------\n");
            }

        }
        printf("\nDigite 0 para sair ou 1 para nova pesquisa: ");
        scanf("%d", &op);
        getchar();
    } while (op != 0);
}


void listar(){
    system("cls");
    printf("\n LISTA DE ALUNOS\n");
    for (int i = 0; i < MAX_ALUNOS; ++i)
    {
        if (alunos.ativo == 1)
        {
            printf("Matricula: %d\n", i + 1);
            printf("Nome: %s\n", alunos.nome);
            printf("1 prova: %0.2f\n", alunos.notas[0]);
            printf("2 prova: %0.2f\n", alunos.notas[1]);
            printf("3 prova: %0.2f\n", alunos.notas[2]);
            printf("\n-------------\n");

        }
    }
}
void operacoes_basicas(){
float num1,num2;
char oper;
float notas;
float total = 0;
int i,a,x,op;
float subtracao= 0;
float divisao= 0;
float media = 0;
float multiplicacao=0;

        do
        {

            printf("Operacoes disponiveis\n");
            printf("'+' : soma\n");
            printf("'-' : subtracao\n");
            printf("'*' : multiplicao\n");
            printf("'/' : divisao\n");
            printf("'%%' : resto da divisao\n");
            scanf(" %c",&oper);
            system("cls || clear");
            switch( oper )
            {
                case '+':
printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;
printf("sua soma e igual=%f",total);

}

                        break;

                case '-':
printf("digite a nota que deseja que seja subtraida:\n");
scanf("%d",&x);

printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;

}
subtracao= x-total;

printf("A media do aluno: %f ", subtracao);

                        break;

                case '*':
                printf("digite a nota que deseja que seja multiplicada");
                 float y;
                int i,a;
                scanf("%f",&y);
printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total *= notas;
multiplicacao= total;
printf("a multiplicação e igual a %f",multiplicacao);
}

printf("total = %f\n",total);

                        break;

case '/':
printf("digite a nota que deseja que seja dividida:\n");
scanf("%d", &x);

printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;

}
divisao= x/total;

printf("A media do aluno: %f ", divisao);
  

                       break;
        default:
                if(num1 != 0 && oper != '0' && num2 != 0){
                            printf(" Operador invalido\n\n ");
              } else{
              printf(" Fechando calculadora!\n ");

             }
            }
        }
        while(op != 0);
  }
 void menu2(){
    bool sair = false;
    int op;
    do {
        system("cls");
        printf("----------MENU PRINCIPAL----------\n[1]OPERACOES BASICAS\n[2]SAIR\n");

        scanf("%d", &op);
        getchar();
        switch (op){
        case 1: operacoes_basicas();
      break;
        case 2:
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
        }
        getchar();
    } while (!sair);
}

 

adicionado 2 minutos depois

esse é antes de eu mexer no codigo 

so avisando tem coisas nele que está incompleto

adicionado 4 minutos depois

esse é depois 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define MAX_ALUNOS 50


int notas = 10;

typedef struct{
    char nome[50];
    float notas[10];
    int ativo;

} Aluno;

Aluno alunos[50];
void manup();
void menu();
void menu2();
void Cadastrar();
void remover();
void reprovados();
void aprovados();
void pesquisar();
void listar();
void operacoes_basicas();


int main(int argc, char const *argv[])
{
  manup();
    return 0;
}
void manup(){
int pa;
bool sair = false;
do{
system("cls");
printf("\t\tselecione seu perfil de acordo com seu uso\t\t\n");
printf("digite 1 para entrada de professor e 2 para caso queira o perfil de aluno\n");
scanf("%d", &pa);
    getchar();
    switch (pa){
    case 1: menu();
    break;
     case 2:menu2();
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
        }getchar();
}while(!sair);
  }
void menu(){
    bool sair = false;
    int op;
    do {
        system("cls");
        printf("----------MENU PRINCIPAL----------\n[1]CADASTRAR\n[2]REMOVER\n[3]REPROVADOS\n[4]APROVADOS\n[5]PESQUISAR\n[6]LISTAR\n[7]OPERACOES BASICAS\n[8]SAIR\n");

        scanf("%d", &op);
        getchar();
        switch (op){
        case 1:
            Cadastrar();
            break;
        case 2:
            remover();
            break;
        case 3:
            reprovados();
            break;
        case 4:
            aprovados();
            break;
        case 5:
            pesquisar();
            break;
        case 6:
            listar();
            break;
        
        case 7:
      operacoes_basicas();
      break;
        case 8:
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
        }
        getchar();
    } while (!sair);
}

void Cadastrar(){

    char nome[50];
    float notas[10];
    int op;
    int i, a;

    do{
        system("cls");
        printf("\nInsira o nome do Aluno: ");
        fgets(nome, sizeof(nome), stdin);
        printf("Insira a quantidade de notas:\n");
        scanf("%d", &a);
        printf("Insira notas:\n");
        for (i = 0; i<a; i++)
            scanf("%f", &notas[a]);
        printf("\n1 - Continuar\n0 - Sair\n");
        scanf("%d", &op);
        getchar();
    } while (op != 0);
}

void remover(){
    int matricula;
    listar();
    printf("\n Digite a matricula do aluno a ser removido: ");
    scanf("%d", &matricula);
    --matricula;
    alunos[matricula].ativo = 0;
    printf("\n Aluno foi excluido com sucesso \n");
    getchar();
}

void reprovados(){
    system("cls");

    float media = 0;
    printf("\n LISTA DE ALUNOS REPROVADOS\n");
    for (int i = 0; i < MAX_ALUNOS; ++i)
    {
        if (alunos.ativo == 1)
        {
            media = 0;
            for (int i = 0; i < notas; ++i)
                media = media / 3;
            if (media<7.0)

            {

                printf("Matricula: %d\n", i + 1);
                printf("Nome: %s\n", alunos.nome);
                printf("1 prova: %0.2f\n", alunos.notas[0]);
                printf("2 prova: %0.2f\n", alunos.notas[1]);
                printf("3 prova: %0.2f\n", alunos.notas[2]);
                printf("Media do aluno: %f\n", media);
                media = 7 - media;
                printf("Falta para o aluno ser aprovado: %0.2f\n", media);
                printf("\n-------------\n");

            }

        }

    }
}

void aprovados(){
    system("cls");
    float media;
    printf("\n LISTA DE ALUNOS APROVADOS\n");
    for (int i = 0; i < MAX_ALUNOS; ++i)
    {
        if (alunos.ativo == 1)
        {
            media = 0;
            media = alunos.notas[0] + alunos.notas[1] + alunos.notas[2];
            media = media / 3;
            if (media>7.0)
            {
                printf("Matricula: %d\n", i + 1);
                printf("Nome: %s\n", alunos.nome);
                printf("1 prova: %0.2f\n", alunos.notas[0]);
                printf("2 prova: %0.2f\n", alunos.notas[1]);
                printf("3 prova: %0.2f\n", alunos.notas[2]);
                printf("Media do aluno: %f\n", media);
                printf("\n-------------\n");

            }
        }
    }
}

void pesquisar(){

    char nome[50];
    int op;
    do{
        system("cls");
        printf("\nDigite o nome do aluno para pesquisar: ");
        fgets(nome, sizeof(nome), stdin);
        for (int i = 0; i < MAX_ALUNOS; ++i)
        {
            if (strstr(alunos.nome, nome) != NULL)
            {
                printf("Matricula: %d\n", i + 1);
                printf("Nome: %s\n", alunos.nome);
                printf("1 prova: %0.2f\n", alunos.notas[0]);
                printf("2 prova: %0.2f\n", alunos.notas[1]);
                printf("3 prova: %0.2f\n", alunos.notas[2]);
                printf("\n-------------\n");
            }

        }
        printf("\nDigite 0 para sair ou 1 para nova pesquisa: ");
        scanf("%d", &op);
        getchar();
    } while (op != 0);
}


void listar(){
    system("cls");
    printf("\n LISTA DE ALUNOS\n");
    for (int i = 0; i < MAX_ALUNOS; ++i)
    {
        if (alunos.ativo == 1)
        {
            printf("Matricula: %d\n", i + 1);
            printf("Nome: %s\n", alunos.nome);
            printf("1 prova: %0.2f\n", alunos.notas[0]);
            printf("2 prova: %0.2f\n", alunos.notas[1]);
            printf("3 prova: %0.2f\n", alunos.notas[2]);
            printf("\n-------------\n");

        }
    }
}
void operacoes_basicas(){
float num1,num2;
char oper;
float notas;
float total = 0;
int i,a,x,op;
float subtracao= 0;
float divisao= 0;
float media = 0;
float multiplicacao=0;

        do
        {

            printf("Operacoes disponiveis\n");
            printf("'+' : soma\n");
            printf("'-' : subtracao\n");
            printf("'*' : multiplicao\n");
            printf("'/' : divisao\n");
            printf("'%%' : resto da divisao\n");
            scanf(" %c",&oper);
            system("cls || clear");
            switch( oper )
            {
                case '+':
printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;
printf("sua soma e igual=%f",total);

}

                        break;

                case '-':
printf("digite a nota que deseja que seja subtraida:\n");
scanf("%d",&x);

printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;

}
subtracao= x-total;

printf("A media do aluno: %f ", subtracao);

                        break;

                case '*':
                printf("digite a nota que deseja que seja multiplicada");
                 float y;
                int i,a;
                scanf("%f",&y);
printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total *= notas;
multiplicacao= total;
printf("a multiplicação e igual a %f",multiplicacao);
}

printf("total = %f\n",total);

                        break;

case '/':
printf("digite a nota que deseja que seja dividida:\n");
scanf("%d", &x);

printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;

}
divisao= x/total;

printf("A media do aluno: %f ", divisao);
  

                       break;
        default:
                if(num1 != 0 && oper != '0' && num2 != 0){
                            printf(" Operador invalido\n\n ");
              } else{
              printf(" Fechando calculadora!\n ");

             }
            }
        }
        while(op != 0);
  }
 void menu2(){
    bool sair = false;
    int op;
    do {
        system("cls");
        printf("----------MENU PRINCIPAL----------\n[1]OPERACOES BASICAS\n[2]SAIR\n");

        scanf("%d", &op);
        getchar();
        switch (op){
        case 1: operacoes_basicas();
      break;
        case 2:
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
        }
        getchar();
    } while (!sair);
}

  • Curtir 1
Postado
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define MAX_ALUNOS 50


int notas = 10;

typedef struct{
	char nome[50];
	float notas[10];
	int ativo;

} Aluno;

Aluno alunos[50];
void manup();
void menu();
void menu2();
void Cadastrar();
void remover();
void reprovados();
void aprovados();
void pesquisar();
void listar();
void operacoes_basicas();


int main(int argc, char const *argv[])
{
  manup();
	return 0;
}
void manup(){
int pa;
bool sair = false;
do{
system("cls");
printf("\t\tselecione seu perfil de acordo com seu uso\t\t\n");
printf("digite 1 para entrada de professor e 2 para caso queira o perfil de aluno\n");
scanf("%d", &pa);
    getchar();
    switch (pa){
    case 1: menu();
    break;
     case 2:menu2();
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
		}getchar();
}while(!sair);
  }
void menu(){
	bool sair = false;
	int op;
	do {
		system("cls");
		printf("----------MENU PRINCIPAL----------\n[1]CADASTRAR\n[2]REMOVER\n[3]REPROVADOS\n[4]APROVADOS\n[5]PESQUISAR\n[6]LISTAR\n[7]OPERACOES BASICAS\n[8]SAIR\n");

		scanf("%d", &op);
		getchar();
		switch (op){
		case 1:
			Cadastrar();
			break;
		case 2:
			remover();
			break;
		case 3:
			reprovados();
			break;
		case 4:
			aprovados();
			break;
		case 5:
			pesquisar();
			break;
		case 6:
			listar();
			break;
		
        case 7:
      operacoes_basicas();
      break;
        case 8:
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
		}
		getchar();
	} while (!sair);
}

void Cadastrar(){

	char nome[50];
	float notas[10];
	int op;
	int i, a;

	do{
		system("cls");
        printf("\nInsira o nome do Aluno: ");
		fgets(nome, sizeof(nome), stdin);
		printf("Insira a quantidade de notas:\n");
		scanf("%d", &a);
		printf("Insira notas:\n");
		for (i = 0; i<a; i++)
			scanf("%f", &notas[a]);
		printf("\n1 - Continuar\n0 - Sair\n");
		scanf("%d", &op);
		getchar();
	} while (op != 0);
}

void remover(){
	int matricula;
	listar();
	printf("\n Digite a matricula do aluno a ser removido: ");
	scanf("%d", &matricula);
	--matricula;
	alunos[matricula].ativo = 0;
	printf("\n Aluno foi excluido com sucesso \n");
	getchar();
}

void reprovados(){
	system("cls");

	float media = 0;
	printf("\n LISTA DE ALUNOS REPROVADOS\n");
	for (int i = 0; i < MAX_ALUNOS; ++i)
	{
		if (alunos[i].ativo == 1)
		{
			media = 0;
			for (int i = 0; i < notas; ++i)
				media = media / 3;
			if (media<7.0)

			{

				printf("Matricula: %d\n", i + 1);
				printf("Nome: %s\n", alunos[i].nome);
				printf("1 prova: %0.2f\n", alunos[i].notas[0]);
				printf("2 prova: %0.2f\n", alunos[i].notas[1]);
				printf("3 prova: %0.2f\n", alunos[i].notas[2]);
				printf("Media do aluno: %f\n", media);
				media = 7 - media;
				printf("Falta para o aluno ser aprovado: %0.2f\n", media);
				printf("\n-------------\n");

			}



		}

	}
}

void aprovados(){
	system("cls");
	float media;
	printf("\n LISTA DE ALUNOS APROVADOS\n");
	for (int i = 0; i < MAX_ALUNOS; ++i)
	{
		if (alunos[i].ativo == 1)
		{
			media = 0;
			media = alunos[i].notas[0] + alunos[i].notas[1] + alunos[i].notas[2];
			media = media / 3;
			if (media>7.0)
			{
				printf("Matricula: %d\n", i + 1);
				printf("Nome: %s\n", alunos[i].nome);
				printf("1 prova: %0.2f\n", alunos[i].notas[0]);
				printf("2 prova: %0.2f\n", alunos[i].notas[1]);
				printf("3 prova: %0.2f\n", alunos[i].notas[2]);
				printf("Media do aluno: %f\n", media);
				printf("\n-------------\n");

			}
		}
	}
}

void pesquisar(){

	char nome[50];
	int op;
	do{
		system("cls");
		printf("\nDigite o nome do aluno para pesquisar: ");
		fgets(nome, sizeof(nome), stdin);
		for (int i = 0; i < MAX_ALUNOS; ++i)
		{
			if (strstr(alunos[i].nome, nome) != NULL)
			{
				printf("Matricula: %d\n", i + 1);
				printf("Nome: %s\n", alunos[i].nome);
				printf("1 prova: %0.2f\n", alunos[i].notas[0]);
				printf("2 prova: %0.2f\n", alunos[i].notas[1]);
				printf("3 prova: %0.2f\n", alunos[i].notas[2]);
				printf("\n-------------\n");
			}

		}
		printf("\nDigite 0 para sair ou 1 para nova pesquisa: ");
		scanf("%d", &op);
		getchar();
	} while (op != 0);
}


void listar(){
	system("cls");
	printf("\n LISTA DE ALUNOS\n");
	for (int i = 0; i < MAX_ALUNOS; ++i)
	{
		if (alunos[i].ativo == 1)
		{
			printf("Matricula: %d\n", i + 1);
			printf("Nome: %s\n", alunos[i].nome);
			printf("1 prova: %0.2f\n", alunos[i].notas[0]);
			printf("2 prova: %0.2f\n", alunos[i].notas[1]);
			printf("3 prova: %0.2f\n", alunos[i].notas[2]);
			printf("\n-------------\n");

		}
	}
}
void operacoes_basicas(){
float num1,num2;
char oper;
float notas;
float total = 0;
int i,a,x,op;
float subtracao= 0;
float divisao= 0;
float media = 0;
float multiplicacao=0;

        do
        {

            printf("Operacoes disponiveis\n");
            printf("'+' : soma\n");
            printf("'-' : subtracao\n");
            printf("'*' : multiplicao\n");
            printf("'/' : divisao\n");
            printf("'%%' : resto da divisao\n");
            scanf(" %c",&oper);
            system("cls || clear");
            switch( oper )
            {
                case '+':
printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;
printf("sua soma e igual=%f",total);

}

                        break;

                case '-':
printf("digite a nota que deseja que seja subtraida:\n");
scanf("%d",&x);

printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;

}
subtracao= x-total;

printf("A media do aluno: %f ", subtracao);

                        break;

                case '*':
                printf("digite a nota que deseja que seja multiplicada");
                 float y;
                int i,a;
                scanf("%f",&y);
printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total *= notas;
multiplicacao= total;
printf("a multiplicação e igual a %f",multiplicacao);
}

printf("total = %f\n",total);



                        break;

case '/':
printf("digite a nota que deseja que seja dividida:\n");
scanf("%d", &x);

printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;

}
divisao= x/total;

printf("A media do aluno: %f ", divisao);
  



                       break;
        default:
                if(num1 != 0 && oper != '0' && num2 != 0){
                            printf(" Operador invalido\n\n ");
              } else{
              printf(" Fechando calculadora!\n ");

             }
            }
        }
        while(op != 0);
  }
 void menu2(){
	bool sair = false;
	int op;
	do {
		system("cls");
		printf("----------MENU PRINCIPAL----------\n[1]OPERACOES BASICAS\n[2]SAIR\n");

		scanf("%d", &op);
		getchar();
		switch (op){
		case 1: operacoes_basicas();
      break;
        case 2:
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
		}
		getchar();
	} while (!sair);
}

 

adicionado 1 minuto depois
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define MAX_ALUNOS 50


int notas = 10;

typedef struct{
	char nome[50];
	float notas[10];
	int ativo;

} Aluno;

Aluno alunos[50];
void manup();
void menu();
void menu2();
void Cadastrar();
void remover();
void reprovados();
void aprovados();
void pesquisar();
void listar();
void operacoes_basicas();


int main(int argc, char const *argv[])
{
  manup();
	return 0;
}
void manup(){
int pa;
bool sair = false;
do{
system("cls");
printf("\t\tselecione seu perfil de acordo com seu uso\t\t\n");
printf("digite 1 para entrada de professor e 2 para caso queira o perfil de aluno\n");
scanf("%d", &pa);
    getchar();
    switch (pa){
    case 1: menu();
    break;
     case 2:menu2();
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
		}getchar();
}while(!sair);
  }
void menu(){
	bool sair = false;
	int op;
	do {
		system("cls");
		printf("----------MENU PRINCIPAL----------\n[1]CADASTRAR\n[2]REMOVER\n[3]REPROVADOS\n[4]APROVADOS\n[5]PESQUISAR\n[6]LISTAR\n[7]OPERACOES BASICAS\n[8]SAIR\n");

		scanf("%d", &op);
		getchar();
		switch (op){
		case 1:
			Cadastrar();
			break;
		case 2:
			remover();
			break;
		case 3:
			reprovados();
			break;
		case 4:
			pesquisar();
			break;
		case 5:
			listar();
			break;
		case 6:
			aprovados();
			break;
        case 7:
      operacoes_basicas();
      break;
        case 8:
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
		}
		getchar();
	} while (!sair);
}

void Cadastrar(){

	char nome[50];
	float notas[10];
	int op;
	int i, a;

	do{
		system("cls");
        printf("\nInsira o nome do Aluno: ");
		fgets(nome, sizeof(nome), stdin);
		printf("Insira a quantidade de notas:\n");
		scanf("%d", &a);
		printf("Insira notas:\n");
		for (i = 0; i<a; i++)
			scanf("%f", &notas[a]);
		printf("\n1 - Continuar\n0 - Sair\n");
		scanf("%d", &op);
		getchar();
	} while (op != 0);
}

void remover(){
	int matricula;
	listar();
	printf("\n Digite a matricula do aluno a ser removido: ");
	scanf("%d", &matricula);
	--matricula;
	alunos[matricula].ativo = 0;
	printf("\n Aluno foi excluido com sucesso \n");
	getchar();
}

void reprovados(){
	system("cls");

	float media = 0;
	printf("\n LISTA DE ALUNOS REPROVADOS\n");
	for (int i = 0; i < MAX_ALUNOS; ++i)
	{
		if (alunos[i].ativo == 1)
		{
			media = 0;
			for (int i = 0; i < notas; ++i)
				media = media / 3;
			if (media<7.0)

			{

				printf("Matricula: %d\n", i + 1);
				printf("Nome: %s\n", alunos[i].nome);
				printf("1 prova: %0.2f\n", alunos[i].notas[0]);
				printf("2 prova: %0.2f\n", alunos[i].notas[1]);
				printf("3 prova: %0.2f\n", alunos[i].notas[2]);
				printf("Media do aluno: %f\n", media);
				media = 7 - media;
				printf("Falta para o aluno ser aprovado: %0.2f\n", media);
				printf("\n-------------\n");

			}



		}

	}
}

void aprovados(){
	system("cls");
	float media;
	printf("\n LISTA DE ALUNOS APROVADOS\n");
	for (int i = 0; i < MAX_ALUNOS; ++i)
	{
		if (alunos[i].ativo == 1)
		{
			media = 0;
			media = alunos[i].notas[0] + alunos[i].notas[1] + alunos[i].notas[2];
			media = media / 3;
			if (media>7.0)
			{
				printf("Matricula: %d\n", i + 1);
				printf("Nome: %s\n", alunos[i].nome);
				printf("1 prova: %0.2f\n", alunos[i].notas[0]);
				printf("2 prova: %0.2f\n", alunos[i].notas[1]);
				printf("3 prova: %0.2f\n", alunos[i].notas[2]);
				printf("Media do aluno: %f\n", media);
				printf("\n-------------\n");

			}
		}
	}
}

void pesquisar(){

	char nome[50];
	int op;
	do{
		system("cls");
		printf("\nDigite o nome do aluno para pesquisar: ");
		fgets(nome, sizeof(nome), stdin);
		for (int i = 0; i < MAX_ALUNOS; ++i)
		{
			if (strstr(alunos[i].nome, nome) != NULL)
			{
				printf("Matricula: %d\n", i + 1);
				printf("Nome: %s\n", alunos[i].nome);
				printf("1 prova: %0.2f\n", alunos[i].notas[0]);
				printf("2 prova: %0.2f\n", alunos[i].notas[1]);
				printf("3 prova: %0.2f\n", alunos[i].notas[2]);
				printf("\n-------------\n");
			}

		}
		printf("\nDigite 0 para sair ou 1 para nova pesquisa: ");
		scanf("%d", &op);
		getchar();
	} while (op != 0);
}


void listar(){
	system("cls");
	printf("\n LISTA DE ALUNOS\n");
	for (int i = 0; i < MAX_ALUNOS; ++i)
	{
		if (alunos[i].ativo == 1)
		{
			printf("Matricula: %d\n", i + 1);
			printf("Nome: %s\n", alunos[i].nome);
			printf("1 prova: %0.2f\n", alunos[i].notas[0]);
			printf("2 prova: %0.2f\n", alunos[i].notas[1]);
			printf("3 prova: %0.2f\n", alunos[i].notas[2]);
			printf("\n-------------\n");

		}
	}
}
void operacoes_basicas(){
float num1,num2;
char oper;
float notas;
float total = 0;
int i,a,x,op;
float subtracao= 0;
float divisao= 0;
float media = 0;
float multiplicacao=0;

        do
        {

            printf("Operacoes disponiveis\n");
            printf("'+' : soma\n");
            printf("'-' : subtracao\n");
            printf("'*' : multiplicao\n");
            printf("'/' : divisao\n");
            printf("'%%' : resto da divisao\n");
            scanf(" %c",&oper);
            system("cls || clear");
            switch( oper )
            {
                case '+':
printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;
printf("sua soma e igual=%f",total);

}

                        break;

                case '-':
printf("digite a nota que deseja que seja subtraida:\n");
scanf("%d",&x);

printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;

}
subtracao= x-total;

printf("A media do aluno: %f ", subtracao);

                        break;

                case '*':
                printf("digite a nota que deseja que seja multiplicada");
                 float y;
                int i,a;
                scanf("%f",&y);
printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total *= notas;
multiplicacao= total;
printf("a multiplicação e igual a %f",multiplicacao);
}

printf("total = %f\n",total);



                        break;

case '/':
printf("digite a nota que deseja que seja dividida:\n");
scanf("%d", &x);

printf("Insira a quantidade de notas:\n");
scanf("%d",&a);

printf("Insira notas:\n");

for(i=0;i<a;i++){

scanf("%f",&notas);

}

for(i=0;i<a;i++){

total += notas;

}
divisao= x/total;

printf("A media do aluno: %f ", divisao);
  



                       break;
        default:
                if(num1 != 0 && oper != '0' && num2 != 0){
                            printf(" Operador invalido\n\n ");
              } else{
              printf(" Fechando calculadora!\n ");

             }
            }
        }
        while(op != 0);
  }
 void menu2(){
	bool sair = false;
	int op;
	do {
		system("cls");
		printf("----------MENU PRINCIPAL----------\n[1]OPERACOES BASICAS\n[2]SAIR\n");

		scanf("%d", &op);
		getchar();
		switch (op){
		case 1: operacoes_basicas();
      break;
        case 2:
            sair = true;
            break;
        default: printf("Entrada invalida!\n");
		}
		getchar();
	} while (!sair);
}

esse é ele sem mexer

Postado

@herbertbahia não no caso eu tenho a função cadastrar ai eu queria que ela pega se e passe as informações para os outros void no caso aprovado,reprovado e o listar

adicionado 0 minutos depois

quando era tres notas e aí de boa mas agora quando eu mexi não exibe mais nada.

Postado

@luckaris

voce declarou no inicio do algoritmo 

typedef struct{
	char nome[50];
	float notas[10];
	int ativo;

} Aluno;

que deveriam armazenar as informações dos aluno

mas na função

11 minutos atrás, luckaris disse:

a função cadastrar

voce inseriu de novo variaveis para guardar as informações dos alunos isso é ambiguidade

	char nome[50];
	float notas[10];

voce tem que ler nas variaveis das estrtuturas e deve usar vetor

void Cadastrar(){
        printf("\nInsira o nome do Aluno: ");
		fflush(stdin);
		gets(aluno.nome);
		printf("Insira a quantidade de notas:\n");
		scanf("%d", &qtd);
		printf("Insira notas:\n");
		for (i = 0; i<qtd; i++)
			scanf("%f", &alunos[i].notas);
}

 

Postado

vou testar

 

adicionado 2 minutos depois

breve pergunta com isso vou ter que mexer em todo codigo ?

 

adicionado 2 minutos depois

se puder me ajudar e indicar em quais partes eu devo modificar

 

  • Curtir 1
Postado

começei a fazer mas vou dormir tenta refazer as outras funções amanha eu confiro


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ALUNOS 50

void menu_prof();
void menu_al();

typedef struct
{
    char nome[50];
    float nota[MAX_ALUNOS];
    int matricula;
} Aluno;

Aluno alunos[MAX_ALUNOS];

int main(int argc, char const *argv[])
{

    int p;
    system("cls");
    printf("\t\tselecione seu perfil de acordo com seu uso\t\t\n");
    printf("digite 1 para entrada de professor e 2 para caso queira o perfil de aluno\n");
    scanf("%d", &p);
    switch (p)
    {
    case 1:
        menu_prof();
        break;
    case 2:
        menu_al();
        break;

    }
}

void menu_prof()
{
    int op;
    printf("----------MENU PRINCIPAL----------\n[1]CADASTRAR\n[2]REMOVER\n[3]REPROVADOS\n[4]APROVADOS\n[5]PESQUISAR\n[6]LISTAR\n[7]OPERACOES BASICAS\n[8]SAIR\n");
    scanf("%d",&op);
    switch(op)
    {
    case 1: cadastrar();
        break;
    case 2://remover();
        break;
    case 3://reprovados();
        break;
    case 4:
        //aprovados();
        break;
    case 5: //pesquisar();
        break;
    case 6: //listar();
        break;
    case 7://operacoes_basicas();
        break;
    case 8:
        exit(1);
    }
    getchar();
}

void menu_al()
{
    int op;
    printf("----------MENU PRINCIPAL----------\n[1]OPERACOES BASICAS\n[2]SAIR\n");
     scanf("%d",&op);
    switch(op)
    {
    case 1: //operacoes_basicas();
        break;
    case 2: exit(1);
        break;
    getchar();
}
}

void cadastrar(){
    int pos=0,qtd=0,i;
    for(int i=0;i<MAX_ALUNOS;i++){
    if(alunos[i].matricula==0){
        break;
        pos=i;
    }
    }
    printf("Digite o nome do aluno: \n");
    fflush(stdin);
    gets(alunos[pos].nome);
    printf("Digite a quantidade de notas: \n");
    scanf("%d",&qtd);
    for(i=0;i<qtd;i++){
        printf("digite a nota %d: ",i+1);
        scanf("%f",&alunos[pos].nota[i]);
    }
}

 

  • Obrigado 1
Postado

@herbertbahia Amigo sera que voce pode me apontar onde estou errando?

#include <stdio.h>
#include <stdlib.h>

int main() {
  int numero,soma,R1,R2,Vin,Vout;
  //Solicitar o valor de R1
    printf ("Entre com o valor de R1:");
    scanf ("%d, &R1");
    //Solicitar o valor de R2
    printf ("Entre com o valor de R2:");
    scanf ("%d, &R2");
    //Solicitar o valor de Vin
    printf ("Entre com o valor de Vin:");
    scanf ("%d, &Vin");
     Vout = R1 + R2 * Vin;
     printf( "o valor de vout e %d", Vout);
}

 

IMG_0812.jpg

  • Curtir 1
Postado

parece muito simples deve ter alguma pegadinha

adicionado 2 minutos depois

pela expressão é isso mas não tenho certeza

#include <stdio.h>
#include <stdlib.h>

int main() {
  long long int R1,R2,Vin,Vout;
  //Solicitar o valor de R1
    printf ("Entre com o valor de R1:");
    scanf ("%I64d, &R1");
    //Solicitar o valor de R2
    printf ("Entre com o valor de R2:");
    scanf ("%I64d, &R2");
    //Solicitar o valor de Vin
    printf ("Entre com o valor de Vin:");
    scanf ("%I64d, &Vin");
    Vout = ((R2/R1+R2)*Vin); 
     printf( "o valor de vout e %I64d", Vout);
}

 

  • Obrigado 1
Postado

@Raphael21 Corrija os scanfs. Da forma que você fez é como se a função tivesse só um parâmetro:

 

scanf("%d, &R1");

Esta é a forma correta:

 

scanf("%d", &R1);

Declare a variável Vout como float e calcule,

 

Vout = R2/(float)(R1 + R2)*Vin;

 

  • Curtir 1
Postado
2 horas atrás, herbertbahia disse:

Vout = ((R2/R1+R2)*Vin);

 

Estão certos de que todos esses valores são inteiros?

Talvez a resistência mas as voltagens provavelmente não e a divisão também acho que não...
 

R1 e R2 são int. Tem certeza de que é uma divisão assim que quer?

	double Vout = ( ( (double)R2 / R1+R2) * Vin );

Talvez algo assim...

 

Sugiro pegar um valor conhecido e testar...

adicionado 0 minutos depois

como @Midori sugeriu...

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...