Αρχικα να αναφέρω οτι μόλις ψιλοξεκίνησα με το προγραμματισμό σε C οπότε έχω πολλά να μάθω.
Αυτό που παρατήρησα είναι οτι ενω τα προγράμματα που φτιάχνω δουλεύουν, τα φτίαχνω πολυ πολύπλοκα σε απλα πράγματα όπως είναι το δίαβασμα των δεδομενων.
Παράδειγμα αυτό που υπέβαλα στο πδπ για τη α'φάση
Ο τρόπος που διάβαζα τα δεδομένα ήταν ανώμαλος και το κατάλαβα όταν ειδα τις υποβολές των υπολοίπων
Αυτο που θελω να προτείνω είναι να στείλετε εδώ κάποια προγράμματα που έχετε φτιάξει οπότε να δίνετε η δυνατότητα σε νέους να μαθαίνουν(καλύτερα τα προγράμματα να μην είναι απο hellenico κλπ για ευνόητους λόγους). Επίσης υπάρχει καπου(website) που να δίνει έτοιμα προγράμματα ώστε να μάθω?
Για του λόγου το αληθές(μου έχει δημιουργήσει προβλήματα τελικα η έκθεση ) αυτό ειναι το πρόγραμμα για τη πρώτη φάση. Σε αρκετούς θα φανει σαν ανέκδοτο αλλα να υπενθυμίσω οτι ήταν το πρώτο μου πρόγραμμα σε C.
Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <stdlib.h>
int compare (const int * a,const int * b)
{
if (*a==*b)
return 0;
else
if (*a > *b)
return -1;
else
return 1;
}
main()
{
FILE *in,*out;
in = fopen("hydrogen.in","r");
out = fopen("hydrogen.out","w");
char c,oneword[100000];
int i=0,j,k,temp,temp2,arvlavon=0,flag=5,allparts,partn[1000001][2];
do {
c = fscanf(in,"%s",oneword);
if (c != EOF){
if (flag == 5) {
allparts=atoi(&oneword[0]);
flag=0;
}
else if (flag == 0) {
partn[i][1]=atoi(&oneword[0]);
flag++;
}else if (flag == 1) {
partn[i][0]=atoi(&oneword[0]);
flag--;
i++;
}
}
} while (c != EOF);
fclose(in);
for (i=0; i<=allparts; i++) {
if (partn[i][0]!=0) {
arvlavon++;
}
}
fprintf(out,"%i\n",arvlavon); //Eixan vlavi
qsort (partn, allparts, 2*sizeof(int), compare);
for (i=0; i<=arvlavon; i++) {
i--;
temp=partn[i][0];
flag=0;
do {
flag++;
i++;
} while (partn[i][0]==temp);
for (j=i-flag;j<=i; j++) {
for (k=i-flag;k<=i; k++) {
if ((partn[k+1][1] < partn[k][1])&&(partn[k+1][0]==temp)) {
temp2 = partn[k][1];
partn[k][1] = partn[k+1][1];
partn[k+1][1]=temp2;
}
}
}
}
for (j=0; j<arvlavon; j++) {
fprintf(out,"%i\n",partn[j][1]);
}
fclose(out);
}