Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

WillPresidenT

Programa que Adiciona,Subtrai e mostra valores

Recommended Posts

Ola pessoal estou tentando criar um programa que adicione e subtraia frações, e tenha as seguintes opções:

 

1- Adicionar (Pede o numerador e divisor e acrescenta-os a lista de parcelas, com um sinal positivo.)

2- Subtrair (Pede o numerador e divisor e e acrescenta-os a lista de parcelas, com um sinal negativo.)

3- Mostra (Mostra as arcelas digitadas até o momento.)

4- Zerar (Zera a lista de parcelas.)

5- Total (Apresenta o resultado das operações, e esse resultado deve ser apresentado em formato de frações.)

6- Sair

 

Elas devem ser manipuladas no formato de numerador/denominador e esses numeradores e denominadores devem ser inteiros e maiores que zero,

 

Espero que possam me ajudar.É muito urgente mesmo... to quebrando demais minhas cabeça não consigo fazer ;x.

Compartilhar este post


Link para o post
Compartilhar em outros sites

posta ai entaum oq você tentou!

faça com calma, faça um menuzinho e tal!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao meu codigo ta meio que assim..

To meio que no inicio de programação.. mas to precisando fazer isso.. eh meio que um trabalho..

 

#include<stdio.h>

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

int numeradors[50];
int divisors[50];
int divisora[50];
int numeradora[50];
int resultado[50];
int totalnumss;
int totalnumsa;
int i=0;
int j=0;
int x;
int resultadoa=0;
int resultados=0;
int total;
int flag;

do{
   printf("\n:: Escolha uma das seguintes operacoes:");
   printf("\n\n\t1- Subtrair");
   printf("\n\n\t2- Adicionar");
   printf("\n\n\t3- Mostrar");
   printf("\n\n\t4- Zerar");
   printf("\n\n\t5- Total");
   printf("\n\n\t6- Sair\n\n");

   printf(":: Digite o numero da opcao desejada: ");
   scanf("%d",&x);

switch(x){
		  
	case 1:{while(numeradors[i-1]!=-999 && divisors[i-1]!=-999){
		   
					 printf("\n\n\tEscreva o numerador desejado(-999 p/ encerrar):");
					 scanf("%d",&numeradors[i]);
					 
			while(numeradors[i]==0){
					 printf("\n\n\n\t:: Digite um Numerador Diferente de 0(Zero) ::\n\n");
					 i--;
					 printf("\n\n\tEscreva o numerador desejado(-999 p/ encerrar):");
					 scanf("%d",&numeradors[i]);}					 
					 
					 printf("\n\n\tEscreva o divisor desejado(-999 p/ encerrar):");
					 scanf("%d",&divisors[i]);

			while(divisors[i]==0){
					 printf("\n\n\n\t:: Digite um Divisor Diferente de 0(Zero) ::\n\n");
					 i--;
					 printf("\n\n\tEscreva o divisor desejado(-999 p/ encerrar):");
					 scanf("%d",&divisors[i]);}		  
					 
					 i++;
					 totalnumss=i-1;					 
					 };					
					 break;};
				  
	case 2:{while(numeradora[j-1]!=-999 && divisora[j-1]!=-999){
				
					printf("\n\n\tEscreva o numerador desejado(-999 p/ encerrar):");
					scanf("%d",&numeradora[j]);
			if(numeradora[j]==0){
					printf("\n\n\n\t:: Digite um Numerador Diferente de 0(Zero) ::\n\n");
					
					j--;}
					
					printf("\n\n\tEscreva o divisor desejado(-999 p/ encerrar):");
					scanf("%d",&divisora[j]);
		   if(divisora[j]==0){
					printf("\n\n\n\t:: Digite um Divisor Diferente de 0(Zero) ::\n\n");
					
					j--;}
							
					j++;
					totalnumsa=j-1;
					};
					break;};
		
	case 3:{for(i=0;i<totalnumss;i++){
				if(numeradors[i]!=0 && divisors[i]!=0){
				printf("\n\n\tO numero que voce digitou: %d/%d\n\n",numeradors[i],divisors[i]);}
				}
			for(j=0;j<totalnumsa;j++){		
				if(numeradora[j]!=0 && divisora[j]!=0){
				printf("\n\n\tO numero que voce digitou: %d/%d\n\n",numeradora[j],divisora[j]);}
				}  
				break;};
				
	case 4:{for(i=0;i<totalnumss;i++){
			   numeradors[i]=0;
			   divisors[i]=0;
			   }
			for(j=0;j<totalnumsa;j++){
			   numeradora[j]=0;
			   divisora[j]=0;
			   }
			   printf("\n\n\tDivisores e Numeradores Zerados\n\n");   
			   break;};
			   
	case 5:{break;};
			  
	case 6:{printf("6\n");
			break;};
				
	default:{printf("default\n");
			break;};
}   
}while(x!=6);

system("pause");
return 0;
}

te muitos erros e gostaria de saber oq eu deveria fazer... alguns dos codigos eu nao terminei.. ;x

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim naum cheguei compilá-lo + quais erros observou, vendo assim meio q por cima soh percebo q existem variaveis q naum fazem nd!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tpw essas variaveis esqueci de tira-las =x..

ahauiahiuahuiahauihauiaiuahuia.

eh que pensei em umas coisas depois nao deram muito certo..

entao quando eu coloco nuemro 0 ou no divisor ou no numerador

quando você vai mostrar ele nao mostra..

nao sei pq..

você tem alguma ideia??

=x

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim qnd vai mostrar?

você ta falando qnd tenta printar o vetor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

posta pra mim como q esta seu codigo agora eu vejo c vejo onde esta o erro!

+ faz assim me escreve quais os dados q você esta digitando e ql a saida esperada, ok!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq você faz essas coisas?

case 5:{break;};

case 6:{printf("6\n");
		break;};

 

Não precisa de chaves num case.

 

default:{printf("default\n");
		break;};

 

Não precisa de break no default.

 

 

while(numeradors[i-1]!=-999 && divisors[i-1]!=-999){

				 printf("\n\n\tEscreva o numerador desejado(-999 p/ encerrar):");
				 scanf("%d",&numeradors[i]);

 

Cadê a outra chave?

 

Sem contar que você ta lendo a mesma coisa umas 3 vezes...

 

 

int x;

 

'x' não diz nada sobre a serventia da variável.

 

 

while(numeradors[i-1]!=-999 && divisors[i-1]!=-999)

 

Olha a caca que você está fazendo aqui: índices começam do zero. Não existe índice negativo em C. você também nao verifica os limites do array.

 

Não precisa encher de while pra filtrar entrada."IF" serve pra isso também.

 

case 1:
	 do {
	  printf("\n\n\tEscreva o numerador desejado(-999 p/ encerrar):");
	  scanf("%d",numeradors[i]);
	  if (numeradors[i] > 0)
		i++;
	  else if (numeradors[i] == 0)
		printf("\nDigite um numerador diferente de zero\n");
	 } while (i<50 && numeradors[i] != -999);

	 i = 0;
	 do {
		printf("\n\n\tEscreva o denominador desejado(-999 p/ encerrar):");
		scanf("%d",divisors[i]);
		if (divisors[i] > 0)
		   i++;
		else if (divisors[i] == 0)
		   printf("\nDigite um denominador diferente de zero\n");				   
	 } while (i<50 && divisors[i] != -999);
	 break;

 

 

Não arrumei o resto porque não entendi nada do código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

segue:

 

#include<stdio.h>
#include<stdlib.h>
struct fraction{int n;
				int d;
				 };
typedef struct fraction Fraction;
Fraction mul(Fraction a, Fraction c);
Fraction add(Fraction a, Fraction c);
Fraction subtr(Fraction a, Fraction c);
Fraction divide(Fraction a, Fraction c);
main()
{
	 Fraction e;
	Fraction f;
	Fraction res1,res2,res3,res4;
	printf("digite aprimeira fracao:\nnumerador: \ndenominador:\n");  
	scanf("%d%d",&e.n,&e.d);
	printf("digite a segunda fracao:\nnumerador: \ndenominador: \n");
	scanf("%d%d",&f.n,&f.d);
	res1=mul(e,f);
	res2=add(e,f);
	res3=subtr(e,f);
	res4=divide(e,f);
	printf("multiplicacao:\n\t%d\n\t%d\n",res1.n,res1.d);
	printf("adicao:\n\t%d\n\t%d\n",res2.n,res2.d);
	printf("subtracao:\n\t%d\n\t%d\n",res3.n,res3.d);
	printf("divisao:\n\t%d\n\t%d\n",res4.n,res4.d);
	system("pause");
}
Fraction mul(Fraction a ,Fraction c)
{
		 Fraction x;
		 x.n=a.n*c.n;
		 x.d=a.d*c.d;
		 return x;
}
Fraction add(Fraction a, Fraction c)
{
		 Fraction x;
		 x.d=a.d*c.d;
		 x.n=(((x.d/a.d)*a.n)+((x.d/c.d)*c.n));
		 return x;
}
Fraction subtr(Fraction a,Fraction c)
{
		 Fraction w;
		 w.d=a.d*c.d;
		 w.n=(((w.d/a.d)*a.n)-((w.d/c.d)*c.n));
		 return w;
}
Fraction divide(Fraction a, Fraction c)
{
		 Fraction z;
		 z.n=a.n*c.d;
		 z.d=a.d*c.n;
		 return z;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.