Claro que gosto de programacao e quero ser um bom programador, é que eu ainda não conhecia o comando malloc, que por sinal você tinha razao e ajudou mt. O programa que eu quero esta pronto praticamente, só que tem um problema, ele roda perfeitamente, mas no final aparece aquela mensagem PROJETOCOMP.exe parou de funcionar etc. O que eu não entendo é q só aparece as vezes, não sei o que pode ser.
OBS: Quando só tinha uma funcao no codigo não aparecia, lembrando que uso o Code::Blocks,
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void selectionsort(int vetor[], int n){
int Menor, aux;
int a, b, c;
for ( a = 0; a < n; a++ ) {
Menor = a;
for ( b = a + 1; b < n; b++ ) {
if ( vetor[Menor] > vetor[b] )
Menor = b;
}
if ( a != Menor ) {
aux = vetor[a];
vetor[a] = vetor[Menor];
vetor[Menor] = aux;
}
}
}
void bubblesort (int vetor[], int n){
int i,j, k = n, aux;
for(i = 0; i<n; i++){
for (j = 0; j<k; j++){
if(vetor[j]>vetor[j+1]){
aux = vetor[j];
vetor[j] = vetor[j+1];
vetor[j+1] = aux;
}
}
k--;
}
}
int main() {
int l, k, i, t;
printf ( "Quantas linhas possuira o arquivo? " );
scanf ( "%d", &t );
FILE *fp1 = fopen ( "ProjetoComp.txt", "w" );
if ( fp1 == NULL ) {
printf ( "não foi possivel abrir o arquivo\n" );
getchar();
return 0;
}
int **matriz = (int**)malloc( sizeof(int**) * t );
for(i=0; i<t; i++ )
matriz[i]=(int*)malloc(sizeof(int*)*2);
for ( k = 0 ; k < t; k++ ) {
printf ( "Informe os elementos da %da. linha:\n", ( k + 1 ) );
for ( l = 0; l < 2; l++ ) {
scanf ( "%d", &matriz[k][l] );
fprintf ( fp1, "%d\t", matriz[k][l] );
}
fprintf ( fp1, "\n");
printf ( "\n" );
}
fclose ( fp1 );
FILE *fp2 = fopen("ProjetoComp.txt","r");
if(fp2 == NULL){
printf("não foi possivel abrir o arquivo\n");
getchar();
return ;
}
k=0;
while ( fscanf(fp2, "%d %d%*c", &matriz[k][0], &matriz[k][1] ) != EOF ){
printf("linha %d - %d %d\n", k + 1, matriz[k][0], matriz[k][1]);
k++;
}
printf("\n");
int *vetor = (int*)malloc( (sizeof(int*) * t) * 2 );
k=0;
for(l=0; l<t; l++){
for( k=k, i=0 ; i<2; k++, i++ ){
vetor[k] = matriz[l][i];
printf("%d, ", vetor[k]);
}
}
printf("\n\n");
printf("Selection Sort!\n");
selectionsort(vetor, t*2);
for (i=0; i<t*2 ; i++ ) {
printf("%d, ", vetor[i]);
}
printf("\n\n");
printf("Bubble Sort!\n");
bubblesort (vetor, t*2);
for (i=0; i<t*2 ; i++ ) {
printf("%d, ", vetor[i+1]);
}
fclose(fp2);
for(i=0; i<t; i++ )
free(matriz[i]);
free(matriz);
free(vetor);
return 0;
}