Ir ao conteúdo
  • Cadastre-se

Dúvida sobre matrizes!


MMD23

Posts recomendados

boa noite a todos,

Sou novo aqui no fórum e estou com dúvida em como "construir" uma matriz de ordem nxn, onde o usaurio vai determinar o tamanho desta.

Primeiramente eu queria um menu ( com switch mesmo) e dentro deste eu chamaria funções que faça determinadas ações, mas neste momento eu gostaria uma função para criar esta matriz (inicialmente vazia) e "dar" o display na tela desta.

o menu será construido por incluir,excluir,alterar(modificar) dados( no caso numeros) , estes dados terá um tamanho, que o usuario dirá quanto é (em MB ou KB) e quantas posições na memória estão ocupados.

Segue o código que tenho, por favor qualquer linha de código que vocês acharem desnecessária ou que precisa adicionar, fiquem a vontade!

#include<stdio.h>
#include<stdlib.h>

int main () {

int **matriz; /* ponteiro para os ponteiros de cada uma das linhas */
int lin, col; /* número de linhas e colunas */
int i, j;
int linha1, linha2; /* linhas da matriz que serao trocadas */
char linha[80]; /* linha de caracteres com os dados */
int *temp;

do {
puts("Qual o numero de linhas?");
gets(linha);
lin = atoi(linha);
} while (lin<=0);
printf("Numero de linhas = %d\n", lin);
printf("Alocando espaço para armazenar os ponteiros para as linhas.\n");
matriz = (int **) malloc (lin * sizeof(int *));
if (!matriz) {
puts("não há espaço para alocar memória");
exit(1);
}

do {
puts("Qual o numero de colunas?");
gets(linha);
col = atoi(linha);
} while (col<=0);
printf("Numero de colunas = %d\n", lin);
printf("Alocando espaço para armazenar os vetores de linhas.\n");
for (i=0; i<lin; i++)
{
*(matriz +i) = (int *) malloc(col * sizeof (int));
if (! *(matriz+i) ){
printf("Não há espaço para alocar a linha %d", i);
exit(1);
}
}
puts("Entre com os dados");
for (i=0; i<lin; i++)
{
printf("Entre com a linha %d\n", i);
for (j=0; j<col; j++)
{
printf("Elemento %d %d\n", i, j);
scanf("%d", *(matriz +i) +j);
}
}
puts("Dados lidos");
for (i=0; i<lin; i++)
{
for (j=0; j<col; j++)
{
printf("%7d ", *(*(matriz +i) +j));
}
printf("\n");
}

}

Obrigado pela atenção de todos, Como disse anteriomente, caso tenha alguma linha de código desnecessária fiquem a vontade!!

Att,

MMD23

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...