dududetonando
(usa Outra)
Enviado em 31/08/2016 - 17:00h
Olá. Obrigado por responder. Fiz algumas correções no programa pra ficar mais entendido . Sobre os números sim o zero e o um são números inteiro ,no caso eu fiz um cubo de 3 por 3 para facilitar um pouco o entendimento posterior é só mudar o define, o problema que eu vi no programa é que esse cubo que eu gerei deveria ter 27 posições mas como não consigo gerar visualmente a matriz na tela eu pedi pro programa mostra antes do calculo a auxiliar contendo a quantidade de números 'um' e 'zero', mas ao fazer isso o programa mostra como se tivesse mais posições; ex. 15 'uns' e 16 'zeros' .
matriz modificada
#include<stdio.h>
#define Linha 3 //define as dimensoes do cubo
#define Coluna 3
#define Profundidade 3
/* Gerar um cubo (10x10x10) preenchendo com números aleatórios entre 0 e 1.
- supondo que:
* 1 signifique área sólida e
* 0 signifique área porosa.
calcule quanto porcento o sólido gerado é sólido e/ou poroso.*/
int main(void)
{
srand( (unsigned)time(NULL) );
int matriztridimensional[Linha][Coluna][Profundidade];
int l,c,p;//variaveis para gerar a matriz os indices
float por;//variavel para armazenar o calculo da porcentagem
int aux=0,auxb;//variaveis para armazenar as quantidades de '0'(zeros) e (1)uns
// gera a matriz
for(l=0;l<Linha;l++)
{
for(c=0;c<Coluna;c++)
{
for(p=0;p<Profundidade;p++)
{
matriztridimensional[l][c][p]=(rand()%2);// gera numeros randomicoos entre zero e um
}
}
}
// percore a matriz e se o elemente na posiçao da matriz for 1 ou 0 armezena em uma das variaveis
for(l=0;l<Linha;l++)
{
for(c=0;c<Coluna;c++)
{
for (p=0;p<Profundidade;p++)
{
if(matriztridimensional[l][c][p]==1)
{
aux=(aux+1);
}
else if(matriztridimensional[l][c][p]==0)
{
auxb=(aux+1);
}
}
}
}
printf("%d\n",aux);//mostra a variavel indicando quantos numeros 'um' possui a matriz
printf("%d\n",auxb);//mostra a variavel indicando quantos numeros 'zero' possui a matriz
por=((aux*100)/(Linha*Coluna*Profundidade));//calculo da porcentagem
printf("A porcentagem de solidos e de %.1f ",por);
}