Ir ao conteúdo
  • Cadastre-se
mrsmeenster

C Como resolver este problema em c?

Recommended Posts

Elabore um programa na linguagem C para classificar o alimento
correspondente ao código digitado quanto à sua origem, e sua sensibilidade às alterações ou
ao seu teor de água livre (Aa).
Observações:
a) O A saída do programa deve, além da classificação, exibir o nome do alimento
classificado correspondente ao código.
b) Quando o código digitado não corresponder a nenhum dos códigos previstos no trecho
de programa abaixo, emitir uma mensagem.
c) O programa deve ser executado tantas vezes quanto o usuário desejar fazê-lo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@mrsmeenster      use vetores para armazenar os dados e use um laço de repetição que pode ser o do / while e dentro dele use o comando scanf para pegar os dados , o código , a origem , a sensibilidade e as alterações , e colocar no vetor   e use o comando if para fazer a classificação e para isso você precisa de uma tabela de referencia para saber qual a classificação do alimento ,  mas não posso te dar o código pronto pois é contra as regras do fórum , então faça seu código e poste aqui para podermos ver como está e em que podemos ajudar  .

Compartilhar este post


Link para o post
Compartilhar em outros sites

No do - while tu define a saída do laço. Ex:

int x=0;

do{

}while(x!=1);
//enquanto o x nao for 1 ele fica repetindo

 

sobre o switch. Você coloca a variável a ser usada. Ex

int num;

printf("1:Arroz");
printf("2:Batata");
do{
switch(num){
	
	case 1:printf("informações sobre arroz");
      break;

	case 2:
			printf("informações sobre Batata");
		break;
	default:
     //Escolher qualquer opção que nao esteja no switch entra em default e termina o programa
}while(num !=0);
  //coloque uma opção de saída para o usuário

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@mrsmeenster    o scanf você coloca logo depois do menu de opções , e o switch é depois de pegar a opção ,  e o do / while é para repetir enquanto o usuário quiser ver as informações ,  então seu código está bom , então acrescentado alguns comandos seu código pode ser assim   :

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
int main(){
    int cod;
    char op;
    do{
        system("cls");
        printf(" 1 - açucar\n");
        printf(" 2 - arroz\n");
        printf(" 3 - batata\n");
        printf(" 4 - beterraba\n");
        printf(" 5 - carnes\n");
        printf(" 6 - farinha\n");
        printf(" 7 - feijão\n");
        printf(" 8 - frutas\n");
        printf(" 9 - hortaliças\n");
        printf("10 - leite\n");
        printf("11 - pescados\n");
        printf("\n");
        printf("digite o codigo do alimento ");
        fflush(stdin);
        scanf("%d",&cod);
        printf("\n");
        switch(cod){
        case 1:
            printf("====  Açucar ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> nao periveis\n");
            break;
        case 2:
            printf("==== Arroz ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> nao pereciveis\n");
           break;
        case 3: 
            printf("==== Batata ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> nao pereciveis\n");
            break;
        case 4:
            printf("==== Beterraba ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> semi-pereciveis\n");
            break;
        case 5:
            printf("==== Carnes ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> pereciveis\n");
            break;
        case 6:
            printf("==== Farinha ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> nao pereciveis\n");
            break;
        case 7:
            printf("==== Feijao ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> nao pereciveis\n");
            break;
        case 8:
            printf("==== Frutas ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> semi-pereciveis\n");
            break;
        case 9:
            printf("==== Hortaliças ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> semi-pereciveis\n");
            break;
        case 10:
            printf("==== Leite ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> pereciveis\n");
            break;
        case 11:
            printf("==== Pescados ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> pereciveis\n");
            break;
        default:
            printf("Opcao Invalida !\n");
        }
        printf("\nVer Outro Alimento S/N ");
        fflush(stdin);
        scanf("%c",&op);
    }while(toupper(op) != 'N');
    return 0;    
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia me ajudar com este código? Está dando erro mas não consigo encontrá-lo. O codigo está anexado em pdf. Mas o enunciado da questão é esse: 

Elabore um programa para ler dois vetores Xn e Yn (n ≤ 20) de elementos inteiros e, de acordo com a opção do usuário (use um menu de opções e o comando switch), calcule:

1 – A união de X com Y

2 – A diferença entre X e Y

3 – O produto escalar de X e Y

4 – A interseção de X e Y

 

CODIGO pd.pdf

adicionado 3 minutos depois

@devair1010

adicionado 4 minutos depois
4 minutos atrás, mrsmeenster disse:

Você poderia me ajudar com este código? Está dando erro mas não consigo encontrá-lo. O codigo está anexado em pdf. Mas o enunciado da questão é esse: 

Elabore um programa para ler dois vetores Xn e Yn (n ≤ 20) de elementos inteiros e, de acordo com a opção do usuário (use um menu de opções e o comando switch), calcule:

1 – A união de X com Y

2 – A diferença entre X e Y

3 – O produto escalar de X e Y

4 – A interseção de X e Y

 

CODIGO pd.pdf

adicionado 3 minutos depois

@devair1010

@devair1010

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@mrsmeenster     esse link passado não está funcionado , melhor você postar o código aqui no fórum mesmo, use o botão  <>  que está lá na barra de ferramentas da janela de postar .

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, devair1010 disse:

@mrsmeenster     esse link passado não está funcionado , melhor você postar o código aqui no fórum mesmo, use o botão  <>  que está lá na barra de ferramentas da janela de postar .

@devair1010 @devair1010 @devair1010

#include <stdio.h> 
#define N 5 
int main() { 
int x[N], y[N], soma[N], prod[N], uniao[2*N], inter[N], dif_xy[N]; 
char ja_consta; 
int i, j, n_inter=0, n_dif_xy=0, n_uniao=0, aux; 
for (i=0; i<N; i++) { 
printf("Informe X[%d]: ", i); 
scanf(" %d", &x[i]); 
do { 
ja_consta = 'N'; 
for (j=0; j<i; j++) 
if (x[i] == x[j]) 
ja_consta = 'S'; 
if (ja_consta == 'S') { 
printf("%d já existe no conjunto. Reinforme X[%d]: ", x[i], i); 
scanf(" %d", &x[i]); 
} 
} while (ja_consta == 'S'); 
} 
for (i=0; i<N; i++) { 
printf("Informe Y[%d]: ", i); 
scanf(" %d", &y[i]); 
do { 
ja_consta = 'N'; 
for (j=0; j<i; j++) 
if (y[i] == y[j]) 
ja_consta = 'S'; 
if (ja_consta == 'S') { 
printf("%d já existe no conjunto. Reinforme Y[%d]: ", y[i], i); 
scanf(" %d", &y[i]); 
} 
} while (ja_consta == 'S'); 
} 

printf("\nX:\n"); 
for (i=0; i<N; i++) 
printf("\t%d", x[i]); 
printf("\nY:\n"); 
for (i=0; i<N; i++) 
printf("\t%d", y[i]); 

/* Soma */ 
for (i=0; i<N; i++) 
soma[i] = x[i] + y[i]; 
printf("\nSoma:\n"); 
for (i=0; i<N; i++) 
printf("\t%d", soma[i]); 

/* Produto */ 
for (i=0; i<N; i++) 
prod[i] = x[i] * y[i]; 
printf("\nProduto:\n"); 
for (i=0; i<N; i++) 
printf("\t%d", prod[i]); 

/* União */ 
for (i=0; i<N; i++) 
uniao[n_uniao++] = x[i]; 
for (i=0; i<N; i++) { 
for (j=0; j<i, y[i] != uniao[j]; j++) 
; 
if (j >= i) 
uniao[n_uniao++] = y[i]; 
} 
printf("\nUnião:\n"); 
for (i=0; i<n_uniao; i++) 
printf("\t%d", uniao[i]); 

/* Diferença X - Y*/ 
for (i=0; i<N; i++) { 
ja_consta = 'N'; 
for (j=0; j<N; j++) 
if (x[i] == y[j]) 
ja_consta = 'S'; 
if (ja_consta == 'N') 
dif[n_dif_xy++] = x[i]; 
} 
printf("\nDiferença X - Y:\n"); 
for (i=0; i<n_dif_xy; i++) 
printf("\t%d", dif_xy[i]); 

/* Intersecção */ 
for (i=0; i<N; i++) 
for (j=0; j<N; j++) 
if (x[i] == y[j]) { 
ja_consta = 'N'; 
for (k=0; k<n_inter; k++) 
if (x[i] == inter[k]) 
ja_consta = 'S'; 
if (ja_consta == 'N') 
inter[n_inter++] = x[i]; 
} 
printf("\nIntersecção:\n"); 
for (i=0; i<n_inter; i++) 
printf("\t%d", inter[i]); 

printf("\n"); 
return 0; 
}




 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@mrsmeenster     seu código está bom , mas na hora de comparar ele compara com o mesmo número ,  e também se digitar algum caractere que não é número ele dá erro ,  então apenas ajeitei essa parte ,  e não sei o que é a interseção , mas seu código poderia ser assim  :

#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <windows.h>
/*#include <locale.h>*/
#define N 5
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,   /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10         11        12        13         14    15 */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}
int main(){
    /*printf("%s\n", setlocale(LC_ALL,"")); getch();*/
    int x[N], y[N], soma[N], prod[N];
    int inter[N], dif_xy[N*2],uniao[2*N];
    char ja_consta,str[30];
    int i,k,j,n_inter=0, n_dif_xy=0,flag;
    /*setlocale(LC_ALL,"portuguese-brazilian");*/
    for(i=0; i<N; i++)
        do{
            textcolor(11,0);
            printf("Informe X[%d]: ",i);
            textcolor(14,0);
            scanf("%s",str);           /* para não aceitar letras */
            flag=0;
            ja_consta = 'N';
            for(k=0;k<strlen(str);k++){
                if( ! isdigit(str[k])){/* testa se é número */
                    flag=1;
                    ja_consta='S';
                    break;
                }
            }
            if( flag )printf("Digitou Caracteres Que n%co S%co N%cmeros !\n",132,132,163);
            else{
                x[i]= atoi(str);
                for(j=0; j<i; j++)
                    if(x[i] == x[j] && j != i )
                        ja_consta = 'S';
                if(ja_consta == 'S' )
                    printf("%d j%c existe no conjunto.\n",atoi(str),160);
            }

        }while(ja_consta == 'S');

    for(i=0; i<N; i++)
        do{
            textcolor(11,0);
            printf("Informe y[%d]: ",i);
            textcolor(14,0);
            scanf("%s",str);           /* para não aceitar letras */
            flag=0;
            ja_consta = 'N';
            for(k=0;k<strlen(str);k++){
                if( ! isdigit(str[k])){/* testa se é número */
                    flag=1;
                    ja_consta='S';
                    break;
                }
            }
            if( flag )printf("Digitou Caracteres Que n%co S%co N%cmeros !\n",132,132,163);
            else{
                y[i]= atoi(str);
                for(j=0; j<i; j++)
                    if(y[i] == y[j] && j != i )
                        ja_consta = 'S';
                if(ja_consta == 'S' )
                    printf("%d j%c existe no conjunto.\n",atoi(str),160);
            }
        }while(ja_consta == 'S');
    textcolor(11,0);
    printf("\n\nX ---------------> ");
    textcolor(14,0);
    for(i=0; i<N; i++)
        printf("%3d",x[i]);
    textcolor(11,0);
    printf("\n\nY ---------------> ");
    textcolor(14,0);
    for (i=0; i<N; i++)
        printf("%3d", y[i]);

    /* Soma */
    for(i=0; i<N; i++)
        soma[i] = x[i] + y[i];
    textcolor(11,0);
    printf("\n\nSoma ------------> ");
    textcolor(14,0);
    for(i=0; i<N; i++)
        printf("%3d",soma[i]);

    /* Produto */
    for(i=0; i<N; i++)
        prod[i] = x[i] * y[i];
    textcolor(11,0);
    printf("\n\nProduto ---------> ");
    textcolor(14,0);
    for(i=0; i<N; i++)
        printf("%3d",prod[i]);

    /* União */
    for(i=0; i<N; i++){
        uniao[i] = x[i];
        uniao[i+N] = y[i];
    }
    textcolor(11,0);
    printf("\n\nUni%co -----------> ",132);
    textcolor(14,0);
    for(i=0; i<N*2; i++)
        printf("%3d",uniao[i]);

    /* Diferença X - Y*/
    for(i=0; i<N; i++){
        ja_consta = 'N';
        for(j=0; j<N; j++)
            if(x[i] == y[j])
                ja_consta = 'S';
        if(ja_consta == 'N'){
            dif_xy[n_dif_xy  ] = x[i];
            dif_xy[n_dif_xy+N] = y[i];
            n_dif_xy++;
        }
    }
    textcolor(11,0);
    printf("\n\nDiferença X - Y -> ");
    textcolor(14,0);
    for (i=0; i<N*2; i++)
        printf("%3d",dif_xy[i]);

    /* Intersecção *//* eesa parte aqui não precisava pois não haverá números repetidos */
    for(i=0; i<N; i++)
        for(j=0; j<N; j++)
            if(x[i] == y[j]){
                ja_consta = 'N';
                for(k=0; k<n_inter; k++)
                    if(x[i] == inter[k])
                        ja_consta = 'S';
                if(ja_consta == 'N')
                    inter[n_inter++] = x[i];
            }
    textcolor(11,0);
    printf("\n\nIntersec%c%co -----> ",135,132);
    textcolor(14,0);
    flag=0;
    for(i=0; i<n_inter; i++)
        if(inter[i]!= 0){
            printf("%3d",inter[i]);
            flag=1;
        }
    if( ! flag )printf("Nao Teve Interse%c%co !",135,132);
    printf("\n\n");
    textcolor(7,0);
    getch();
    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×