I kind of have a hang of bubble sort but I'm kind of stuck right now with my code...I don't know how to print it out sorted.
FULL CODE
Code:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE *fp;
fp = fopen("test.dat", "r");
if (fp == NULL)
{
printf("File test.dat failed to open\n");
exit (1);
}
int r, c, x, i, HowMany;
r = 0;
c = 0;
int pairs[500][2];
int A[1000];
i = 0;
fscanf(fp, "%d", &x);
while ( !feof(fp) )
{
A[i] = x;
i++;
fscanf(fp, "%d", &x);
}
A[i] = x;
HowMany = i + 1;
printf("There is %d: \n", HowMany);
printf("%d\n", A[0]);
printf("%d\n", A[1]);
printf("%d\n", A[2]);
printf("%d\n", A[3]);
printf("%d\n", A[4]);
printf("%d\n", A[5]);
printf("%d\n", A[6]);
printf("%d\n", A[7]);
x = 0;
for(r = 0; r<=HowMany; r++)
{
for(c = 0; c <=1; c++)
{
pairs[r][c] = A[x];
x++;
}
}
printf("%d ", pairs[0][0]);
printf("%d\n", pairs[0][1]);
printf("%d ", pairs[1][0]);
printf("%d\n", pairs[1][1]);
printf("%d ", pairs[2][0]);
printf("%d\n", pairs[2][1]);
printf("%d ", pairs[3][0]);
printf("%d\n", pairs[3][1]);
int j,temp,temp2;
c = 0;
r = 0;
for(i = 0; i <= HowMany; ++i)
{
for(j = 0; j <= HowMany - 1; ++j)
{
if(pairs[c][r] > pairs[c+1][r])
{
temp = pairs [c][r];
temp2 = pairs[c][r+1];
pairs[c][r] = pairs[c+1][r];
pairs[c][r+1] = pairs[c+1][r+1];
pairs[c+1][r] = temp;
pairs[c+1][r+1] = temp2;
}
}
}
printf("%d ", pairs[0][0]);
printf("%d\n", pairs[0][1]);
printf("%d ", pairs[1][0]);
printf("%d\n", pairs[1][1]);
printf("%d ", pairs[2][0]);
printf("%d\n", pairs[2][1]);
printf("%d ", pairs[3][0]);
printf("%d\n", pairs[3][1]);
return 0;
}
Here's what I'm looking at specifically...
Code:
int j,temp,temp2;
c = 0;
r = 0;
for(i = 0; i <= HowMany; ++i)
{
for(j = 0; j <= HowMany - 1; ++j)
{
if(pairs[c][r] > pairs[c+1][r])
{
temp = pairs [c][r];
temp2 = pairs[c][r+1];
pairs[c][r] = pairs[c+1][r];
pairs[c][r+1] = pairs[c+1][r+1];
pairs[c+1][r] = temp;
pairs[c+1][r+1] = temp2;
}
}
}
printf("%d ", pairs[0][0]);
printf("%d\n", pairs[0][1]);
printf("%d ", pairs[1][0]);
printf("%d\n", pairs[1][1]);
printf("%d ", pairs[2][0]);
printf("%d\n", pairs[2][1]);
printf("%d ", pairs[3][0]);
printf("%d\n", pairs[3][1]);
The idea of it is to take pairs of numbers (Example: (1,2) (5,7) (2,3) (9,6) ) and sort them by the first number from lowest to highest so the example pairs would look like this...
(1,2) (2,3) (5,7) (9,6)
I think I have the logic down for the most part but I don't know where to go from here...like how to print it...