Olá, estou iniciando em programação e gostaria de ajuda. Trata-se de uma matriz, o código que criei funcionou em partes. Digo em parte porque quando insiro uma unica palavra o programa se comporta como o esperado. Entretanto quando uso por exemplo um nome composto ele da ruim. Tentei por gets() e também scanf("%30[^\n]s",&nome); más ambos me retornam o mesmo problema primeira volta funciona tudo ok.
o problema esta na segunda volta ele pula a parte de ler o nome e vai direto pro laco do j. alguém pode me explicar o porque isso acontece? segue abaixo o enunciado e o meu código.
Uma floricultura conhecedora de sua clientela gostaria de fazer um programa em Linguagem C que pudesse controlar sempre um estoque mínimo de determinadas plantas, pois
todo dias, pela manhã, o dono faz novas aquisições. Criar um programa em Linguagem C que deixe cadastrar 50 tipos de plantas e nunca deixar o estoque ficar abaixo do ideal. Para cada planta, o dono gostaria de cadastrar o nome, o estoque ideal e a quantidade em estoque. Dessa forma o programa em Linguagem C pode calcular a quantidade que o dono da loja precisa comprar no próximo dia. Essa quantidade a ser comprada deve ser impressa (quando maior que zero) como uma lista para o dono da floricultura.
#include<stdio.h>
main(){
int estoque[50][2],compra,i,j,qtd_estoque,estoque_ideal;
char nome[30];
printf("Floricultura...\n\n");
printf("Cadastrar plantas : \n");
for(i=0;i<50;i++){
printf("\nPlanta %d : ",i+1);
scanf("%30[^\n]s",&nome);
for(j=0;j<2;j++){
if(j==0){
printf("\nInforme a quantidade atual em estoque : \n");
scanf("%d", &estoque[j]);
qtd_estoque = estoque[j];
}
else {
printf("\nInforme a quantidade para estoque ideal:\n");
scanf("%d", &estoque[j]);
estoque_ideal = estoque[j];
}
}
compra = (estoque_ideal-qtd_estoque);
//system("cls");
if(compra>0){
printf("Nome : %s\nEstoque Atual : %d\nEstoque ideal : %d\nQuantidade a ser comprada é de: %d\n",nome,qtd_estoque,estoque_ideal,compra);
}
else printf("Estoque completo não há necessidade de compra para %s.\n",nome);
}
}
Pergunta
Thamires.c27
Olá, estou iniciando em programação e gostaria de ajuda. Trata-se de uma matriz, o código que criei funcionou em partes. Digo em parte porque quando insiro uma unica palavra o programa se comporta como o esperado. Entretanto quando uso por exemplo um nome composto ele da ruim. Tentei por gets() e também scanf("%30[^\n]s",&nome); más ambos me retornam o mesmo problema primeira volta funciona tudo ok.
o problema esta na segunda volta ele pula a parte de ler o nome e vai direto pro laco do j. alguém pode me explicar o porque isso acontece? segue abaixo o enunciado e o meu código.
Uma floricultura conhecedora de sua clientela gostaria de fazer um programa em Linguagem C que pudesse controlar sempre um estoque mínimo de determinadas plantas, pois
todo dias, pela manhã, o dono faz novas aquisições. Criar um programa em Linguagem C que deixe cadastrar 50 tipos de plantas e nunca deixar o estoque ficar abaixo do ideal. Para cada planta, o dono gostaria de cadastrar o nome, o estoque ideal e a quantidade em estoque. Dessa forma o programa em Linguagem C pode calcular a quantidade que o dono da loja precisa comprar no próximo dia. Essa quantidade a ser comprada deve ser impressa (quando maior que zero) como uma lista para o dono da floricultura.
#include<stdio.h>
main(){
int estoque[50][2],compra,i,j,qtd_estoque,estoque_ideal;
char nome[30];
printf("Floricultura...\n\n");
printf("Cadastrar plantas : \n");
for(i=0;i<50;i++){
printf("\nPlanta %d : ",i+1);
scanf("%30[^\n]s",&nome);
for(j=0;j<2;j++){
if(j==0){
printf("\nInforme a quantidade atual em estoque : \n");
scanf("%d", &estoque[j]);
qtd_estoque = estoque[j];
}
else {
printf("\nInforme a quantidade para estoque ideal:\n");
scanf("%d", &estoque[j]);
estoque_ideal = estoque[j];
}
}
compra = (estoque_ideal-qtd_estoque);
//system("cls");
if(compra>0){
printf("Nome : %s\nEstoque Atual : %d\nEstoque ideal : %d\nQuantidade a ser comprada é de: %d\n",nome,qtd_estoque,estoque_ideal,compra);
}
else printf("Estoque completo não há necessidade de compra para %s.\n",nome);
}
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.