Boa tarde gente. Como todos sabem, não se deve colocar o operador de endereço ( & ) para endereçar uma matriz, já que o nome da matriz já é um endereço. Porém, no código abaixo, eu só consigo obter o nome do cômodo pela segunda vez utilizando o operador ( se eu não utilizá-lo, esta instrução é “pulada”). Já tentei usar gets no lugar do scanf e mesmo assim ela é ignorada. Como isso se explica? usar o operador de endereço para endereçar um endereço já endereçado? e por que eu só consigo obter pela segunda vez o nome do cômodo se eu fizer uso de scanf("%s", &comodo); ? obrigado pela ajuda!
/*
* File: arearesidencia.c
* Author: phoenix
*
* Created on 4 de Junho de 2010, 09:44
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
/*
*
*/
int main(int argc, char** argv) {
float largura = 0, comprimento = 0, totarea = 0;
char comodo[20];
char ch;
while(ch != 'N') {
printf("Informe o nome do comodo: ");
scanf("%s", &comodo); // só obtém o nome do cômodo na segunda inserção se eu usar &comodo
printf("Insira a largura desse comodo: ");
scanf("%f", &largura);
printf("Insira o comprimento do comodo: ");
scanf("%f", &comprimento);
printf("\nArea do comodo escolhido: %.2f\n", largura * comprimento);
totarea += largura * comprimento;
puts("deseja escolher outro comodo (s/n)? ");
ch = toupper(getche());
printf("\n");
}
printf("\n\nArea total da residencia: %.2f\n", totarea);
system("PAUSE");
}

