Ir para conteúdo

POWERED BY:

Arquivado

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

Eva.lima

[Resolvido] C Matrizes Multidimensionais Especiais

Recommended Posts

#include <stdio.h>
int funcao_multidimensionais_especiais(int *p,int l,int c) {
	int opcao,diago,i,j,diagonal_pri,vetor[l],a,x,vetor2[l],y;
	do {
		printf("\n\n\t MENU: ");
		printf("\n\n 1: Passar para um vetor apenas os elementos da diagonal principal. ");
		printf("\n\n 2: Mostrar elementos da matriz que estao abaixo da diagonal principal, incluindo-a. ");
		printf("\n\n 3: Sair do sistema. ");
		printf("\n\n Digite a opcao que deseja aplicar: ");
		scanf("%d", &opcao);
		system("cls");
		switch (opcao) {
		case 1:
			for (i=0;i<l;i++) {
				for (j=0;j<c;j++) {
					if (i==j) {
						vetor[x] = *(p+i*c+j);
						printf("\n\n Diagonal Principal: %d", vetor[x]);
						x++;
					}
				}
			}
			getch();
			break;
		case 2:
			for (i=0;i<=l;i++) {
				for (j=0;j<=c;j++) {
					if (*(p+i*c+j) != (*(p+j*c+i))) {
						vetor2[y] = *(p+i*c+j);
						printf("\n\n Numeros abaixo da diagonal: %d", vetor[y]);
					}
				}
			}
			break;
		case 3:
			printf("\n\n Saindo do sistema. ");
			getch();
			system("cls");
			break;
		default:
			printf("\n\n Opcao invalida.  Por favor tente novamente. ");
			getch();
			system("cls");
			break;
		}
	} while (opcao!=3);
}
int main() {
	int matriz[5][5],l,c;
	for (l=0;l<=4;l++) {
		for (c=0;c<=4;c++) {
			printf("Digite o numero: ");
			scanf("%d", &matriz[l][c]);
		}
	}
	funcao_multidimensionais_especiais(matriz, 5, 5);
	system("pause");
	system("cls");

Bom dia! gostaria de uma ajuda no meu código estou com problema asim quando vou copilar aparece um erro asim exemplo Digite o numero digito 1 vou até terminar quando eu entro na tela de menu pede para digitar o menu desejado eu digito 1 e depois 2 aparece esse erro encontrou um problema e presisa ser fechado. alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

quanto ta valendo 'y' nesse momento?

vetor2[y] = *(p+i*c+j);

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada pela ajuda quitZAUMMM consegui terminar.Resolvido.

 

#include<stdio.h>
#include<string.h>
#include<conio.h>
#define linha 5
#define coluna 5
void carregaMatriz (int *p, int l, int c)
{
	int i,j,op;
	while (op != 0)
	{
		printf("\n\t\t---------- MENU ----------\n");
		printf("\n1 - Exibir os elementos da diagonal principal.");
		printf("\n2 - Exibir os elementos abaixo da diagonal.");
		printf("\n0 - Sair.\n");
		printf("\nInforme a opcao desejada: ");
		scanf("%d",&op);
		switch (op)
		{
		case 1:
			for (i=0; i < linha; i++)
			{
				for (j=0; j < coluna; j++)
				{
					if (i==j)
					{
						printf("\n|%d| ",(*(p+ i*coluna +j)));
					}
				}
			}
			printf ("\n\n");
			system("pause");
			system ("cls");
			break;

		case 2:
			for (i=0; i < linha; i++){
				for (j=0; j<coluna; j++){
					if (i!=j){
						printf("\n |%d| ",(*(p+ i*coluna +j)));
					}
				}
			}
			printf ("\n\n");
			system("pause");
			system ("cls");
			break;
		case 0:
			system ("cls");
			printf ("Encerrando o programa...\n");
			system ("pause");
			break;
		default:
			printf ("\n Opcao invalida!");
			system ("cls");
			break;
		}
	}
}

int main()
{
	int matriz[linha][coluna],lin,col;
	for (lin=0; lin < linha; lin++){
		for (col=0; col< coluna; col++){
			printf("Escreva um numero: ");
			scanf("%d",&matriz[lin][col]);
		}
	}
	carregaMatriz(matriz,linha,coluna);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.