switch em C
- MegaManx3
- Mensagens: 1915
- Registrado em: Ter Fev 21, 2006 4:38 pm
- 19
- Localização: Valparaiso de Goias
- Gender:
- Contato:
switch em C
seque codigo,feito no DEV-C++,é um algoritmo bem simples,é so pra mostrar o numero que o usuario digita,em sequencias,de maior menor e meio,essa sequencia muda,de acordo com o valor de I,eu coloquei I em um switch,e o algoritmo,so pede o valor dele,e ja pula direto a parte de pedir os valores de A,B e C.o que eu errei ?
#include <stdio>
#include <conio>
int main ()
{
int maior,menor,meio,a,b,c,i;
printf("Digite o valor de I ");
scanf("d",&i);
printf("Digite o valor de A ");
scanf("d",&a);
printf("Digite o valor de B ");
scanf("d",&b);
printf("Digite o valor de C ");
scanf("d",&c);
switch(i){
case 1:
if(a>b,a>c,b>c){//a maior,b meio,c menor.
a==maior;
b==meio;
c==menor;
}
if(a>b,a>c,c>b){//a maior,c meio,b menor.
a==maior;
c==meio;
b==menor;
}
printf("%s,%s,%s",maior,meio,menor);
break;
case 2 :
if(b>a,b>c,a>c){//b maior,a meio,c menor.
b==maior;
a==meio;
c==menor;
}
if(b>a,b>c,c>a){//b maior,c meio,a menor.
b==maior;
c==meio;
a==menor;
}
printf("%s,%s,%s",menor,meio,maior);
break;
case 3 :
if(c>a,c>b,a>b){//c maior,a meio,b menor.
c==maior;
a==meio;
b==menor;
}
if(c>a,c>b,b>a){//c maior,b meio,a menor.
c==maior;
b==meio;
a==menor;
}
printf("%s,%s,%s",maior,meio,menor);
break;
default :
printf("%Este numero nao e positivo,ou nao e um valor entre 1 e 3");
}
getch();
return 0 ;
}[/quote]
#include <stdio>
#include <conio>
int main ()
{
int maior,menor,meio,a,b,c,i;
printf("Digite o valor de I ");
scanf("d",&i);
printf("Digite o valor de A ");
scanf("d",&a);
printf("Digite o valor de B ");
scanf("d",&b);
printf("Digite o valor de C ");
scanf("d",&c);
switch(i){
case 1:
if(a>b,a>c,b>c){//a maior,b meio,c menor.
a==maior;
b==meio;
c==menor;
}
if(a>b,a>c,c>b){//a maior,c meio,b menor.
a==maior;
c==meio;
b==menor;
}
printf("%s,%s,%s",maior,meio,menor);
break;
case 2 :
if(b>a,b>c,a>c){//b maior,a meio,c menor.
b==maior;
a==meio;
c==menor;
}
if(b>a,b>c,c>a){//b maior,c meio,a menor.
b==maior;
c==meio;
a==menor;
}
printf("%s,%s,%s",menor,meio,maior);
break;
case 3 :
if(c>a,c>b,a>b){//c maior,a meio,b menor.
c==maior;
a==meio;
b==menor;
}
if(c>a,c>b,b>a){//c maior,b meio,a menor.
c==maior;
b==meio;
a==menor;
}
printf("%s,%s,%s",maior,meio,menor);
break;
default :
printf("%Este numero nao e positivo,ou nao e um valor entre 1 e 3");
}
getch();
return 0 ;
}[/quote]
- MegaManx3
- Mensagens: 1915
- Registrado em: Ter Fev 21, 2006 4:38 pm
- 19
- Localização: Valparaiso de Goias
- Gender:
- Contato:
#include <stdio>
#include <conio>
int main ()
{
int maior,menor,meio,a,b,c,i;
printf("Digite o valor de A ");
scanf("d",&a);
printf("Digite o valor de B ");
scanf("d",&b);
printf("Digite o valor de C ");
scanf("d",&c);
printf("Digite o valor de I ");
scanf("d",&i);
switch(i){
case 1:
if(a>b &&a >c&& b>c){//a maior,b meio,c menor.
a==maior;
b==meio;
c==menor;
printf("%d,%d,%d",maior,meio,menor);
}
if(a>b && a>c && c>b){//a maior,c meio,b menor.
a==maior;
c==meio;
b==menor;
}
printf("%d,%d,%d",maior,meio,menor);
break;
case 2 :
if(b>a&& b>c&& a>c){//b maior,a meio,c menor.
b==maior;
a==meio;
c==menor;
printf("%d,%d,%d",maior,meio,menor);
}
if(b>a && b>c && c>a){//b maior,c meio,a menor.
b==maior;
c==meio;
a==menor;
}
printf("%d,%d,%d",menor,meio,maior);
break;
case 3 :
if(c>a && c>b &&a>b){//c maior,a meio,b menor.
c==maior;
a==meio;
b==menor;
printf("%d,%d,%d",maior,meio,menor);
}
if(c>a && c>b && b>a){//c maior,b meio,a menor.
c==maior;
b==meio;
a==menor;
}
printf("%d,%d,%d",maior,meio,menor);
break;
default :
printf("Este numero nao e positivo,ou nao e um valor entre 1 e 3");
}
getch();
return 0 ;
}
#include <conio>
int main ()
{
int maior,menor,meio,a,b,c,i;
printf("Digite o valor de A ");
scanf("d",&a);
printf("Digite o valor de B ");
scanf("d",&b);
printf("Digite o valor de C ");
scanf("d",&c);
printf("Digite o valor de I ");
scanf("d",&i);
switch(i){
case 1:
if(a>b &&a >c&& b>c){//a maior,b meio,c menor.
a==maior;
b==meio;
c==menor;
printf("%d,%d,%d",maior,meio,menor);
}
if(a>b && a>c && c>b){//a maior,c meio,b menor.
a==maior;
c==meio;
b==menor;
}
printf("%d,%d,%d",maior,meio,menor);
break;
case 2 :
if(b>a&& b>c&& a>c){//b maior,a meio,c menor.
b==maior;
a==meio;
c==menor;
printf("%d,%d,%d",maior,meio,menor);
}
if(b>a && b>c && c>a){//b maior,c meio,a menor.
b==maior;
c==meio;
a==menor;
}
printf("%d,%d,%d",menor,meio,maior);
break;
case 3 :
if(c>a && c>b &&a>b){//c maior,a meio,b menor.
c==maior;
a==meio;
b==menor;
printf("%d,%d,%d",maior,meio,menor);
}
if(c>a && c>b && b>a){//c maior,b meio,a menor.
c==maior;
b==meio;
a==menor;
}
printf("%d,%d,%d",maior,meio,menor);
break;
default :
printf("Este numero nao e positivo,ou nao e um valor entre 1 e 3");
}
getch();
return 0 ;
}
- Fabio914
- Mensagens: 1757
- Registrado em: Dom Mai 21, 2006 4:38 pm
- 18
- Localização: Sampa/Sanca
- Contato:
Cara, primeiro que nos scanf tem problema na recepção, o certo é scanf("%d",&i); .
Também tem problema nas suas atribuições...
seria por exemplo:
if((a>b) && (a >c) && (b>c)){ //a maior,b meio,c menor.
maior=a;
meio=b;
menor=c;
printf("%d,%d,%d",maior,meio,menor);
}
Cara, eu não entendi ao certo o que você quer fazer, mas eu fiz um programa exemplo de como você pode organizar 3 numeros em ordem crescente...
Também tem problema nas suas atribuições...
seria por exemplo:
if((a>b) && (a >c) && (b>c)){ //a maior,b meio,c menor.
maior=a;
meio=b;
menor=c;
printf("%d,%d,%d",maior,meio,menor);
}
Cara, eu não entendi ao certo o que você quer fazer, mas eu fiz um programa exemplo de como você pode organizar 3 numeros em ordem crescente...
Código: Selecionar todos
#include<stdio>
#include<stdlib>
#define NUMEROS 3
int main(void){
int numero[NUMEROS],aux;
int i,j;
for(i=0;i<NUMEROS;i++)
scanf("%d",&numero[i]);
for(i=0;i<NUMEROS;i++)
for(j=i;j<NUMEROS;j++)
{
aux=numero[i];
numero[i]=numero[j];
numero[j]=aux;
}
for(i=0;i<NUMEROS;i++)
printf(" %d",numero[i]);
printf("\n");
system("pause");
return 0;
}
- Fabio914
- Mensagens: 1757
- Registrado em: Dom Mai 21, 2006 4:38 pm
- 18
- Localização: Sampa/Sanca
- Contato:
Humm, com switch da certo sim, mas não precisa fazer com tantos ifs assim, da pra fazer de maneiras bem mais simples. Mas tome cuidado com a sintaxe, seu programa não estava funcionando por causa disso. Alias, não sabia que você ta estudando C, boa sorte aiMegaManx3 escreveu:é bem simples,caso i seja 1,ordem cresente,caso se 2 ordem decrecente,caso seja 3,o menor valor no meio,diferente disso da nada,por isso joguei num switch.

- MegaManx3
- Mensagens: 1915
- Registrado em: Ter Fev 21, 2006 4:38 pm
- 19
- Localização: Valparaiso de Goias
- Gender:
- Contato:
bom,consequi compilar e roda,mas no print da algo estranho,o que ele mostra é o endereço de memoria e não o numero digitado pelo usuario:
#include <stdio>
#include <conio>
int main ()
{
int maior,menor,meio,a,b,c,i;
printf("Digite o valor de (A)\n");
scanf("%d",&a);
printf("Digite o valor de (B)\n");
scanf("%d",&b);
printf("Digite o valor de (C)\n");
scanf("%d",&c);
printf("Digite o valor de (I)\n");
scanf("%d",&i);
if((a>b)&&(a>c)&&(b>c)){//a maior,b meio,c menor.
a=maior;
b=meio;
c=menor;
}
if((a>b)&& (a>c)&&(c>b)){//a maior,c meio,b menor.
a=maior;
c=meio;
b=menor;
}
if((b>a)&&(b>c)&&(c>b)){// b maior,c meio,a menor
b=maior;
c=meio;
a=menor;
}
if((b>a)&&(b>c)&&(b>c)){//b maior,a meio,c menor
b=maior;
a=meio;
c=menor;
}
if((c>a)&&(c>b)&&(b>a)){//c maior,b meio,a menor
c=maior;
b=meio;
a=menor;
}
if((c>a)&&(c>b)&&(a>b)){//c maior,a meio ,b menor
c=maior;
a=meio;
b=menor;
}
switch(i){
case 1:printf("%d,%d,%d",maior,meio,menor);
break;
case 2:printf("%d,%d,%d",menor,meio,maior);
break;
case 3:printf("%d,%d,%d",menor,maior,meio);
break;
default :printf("NUMERO INVALIDO");
break;
}
getch();
return 0;
}