Λύσεις της Α Φασης!

Γενικά θέματα για το διαγωνισμό. Ερωτήσεις, προτάσεις και ό,τι άλλο ταιριάζει.
Άβαταρ μέλους
jerrak0s
Δημοσιεύσεις: 16
Εγγραφή: Τετ Δεκ 17, 2008 10:18 pm

Re: Λύσεις της Α Φασης!

Δημοσίευση από jerrak0s »

Να και η δική μου:

Κώδικας: Επιλογή όλων

/*LANG: C
TASK: Alexander*/
#include <stdio.h>

int main(void) {
	int i,j,L,C;
	char k, w='V', r='P';
	FILE *fin, *fout;

	fin=fopen("Alexander.in","r");
	if (fin==NULL) {
		printf("Den yparxei arxeio eisodou\n");
        return(0);
	}	
	fseek(fin, 0L, SEEK_SET );
	fscanf(fin, "%d %d \n %c", &L, &C, &k);
	
	if ((L<10)||(L>10000)) {
		printf("O arithmos grammvn prepei na einai apo 10 ews 10000\n");
		printf("Ftiakste kainourio arxeio eisodou\n");
        fclose(fin);
		return(0);
	}
	if ((C<10)||(C>12000)){
		printf("O arithmos psifidwn ana grammh prepei na einai apo 10 ews 12000\n");
		printf("Ftiakste kainourio arxeio eisodou\n");
        fclose(fin);
		return(0);
	}
	if ((k!='P') && (k!='V')) {
        printf("H prwth psifida prepei na einai P 'h V\n");
		printf("Ftiakste kainourio arxeio eisodou\n");
        fclose(fin);
		return(0);
    }
	fclose(fin);
    fout=fopen("Alexander.out","w");
	for (i=0; i<L; i++) {
		for (j=0; j<C; j++) {
			if (k=='P') {
				if ((i+j)%2==0) { fprintf(fout,"%c",k); }
	          		if ((i+j)%2==1) { fprintf(fout,"%c",w); }
			}
			if (k=='V') {
				if((i+j)%2==0) fprintf(fout,"%c",k);
				if((i+j)%2==1) fprintf(fout,"%c",r);
			}
	        	if(j==C-1) fprintf(fout,"\n");
		}
	}
	fclose(fout);
	return(0);
}
--------------------------------------------------------------------------
Mpinelikia.net επέρχεται..
--------------------------------------------------------------------------
chris
Δημοσιεύσεις: 528
Εγγραφή: Κυρ Δεκ 28, 2008 9:27 am

Re: Λύσεις της Α Φασης!

Δημοσίευση από chris »

Χμμ...
fseek(fin, 0L, SEEK_SET );
Περιττό!
if ((k!='P') && (k!='V')) {
printf("H prwth psifida prepei na einai P 'h V\n");
printf("Ftiakste kainourio arxeio eisodou\n");
fclose(fin);
return(0);
}
Περιττό επίσης... Το αρχείο εισόδου είναι πάντα όπως περιγράφεται στην εκφώνηση!
;)
Μετα από 397 δημοσιεύσεις, έβαλα και υπογραφή.
abresas
Δημοσιεύσεις: 2
Εγγραφή: Κυρ Φεβ 15, 2009 3:34 pm

Re: Λύσεις της Α Φασης!

Δημοσίευση από abresas »

there yah go:
(Έχετε χάρη που μου τη ζήτησε ο stathis :P)

Κώδικας: Επιλογή όλων

/*
LANG: C
TASK: Alexander
*/
#include <stdio.h>
#include <stdlib.h>

int main() {
    int L, C, i;
    char first, second;
    char * line;

    FILE * fp = fopen( "Alexander.in", "r" );
    fscanf( fp, "%i %i\n%c\n", &L, &C, &first );
    fclose( fp );

    second = ( first == 'P' ) ? 'V' : 'P';

    line = (char*)malloc( (C + 1) * sizeof( char ) );
    for ( i = 0; i <= C; ++i ) {
        line[ i ] = ( i % 2 ) ? second : first;
    }

    fp = fopen( "Alexander.out", "w" );
    for ( i = 0 ; i < L; ++i ) {
        fwrite( line + (i % 2), 1, C, fp );
        fwrite( "\n", 1, 1, fp );
    }
    fclose( fp );

    free( line );

    return 0;
}
thetrojan01
Δημοσιεύσεις: 712
Εγγραφή: Κυρ Δεκ 21, 2008 2:45 pm

Re: Λύσεις της Α Φασης!

Δημοσίευση από thetrojan01 »

abresas: οραία η χρήση του inline if στο πρόγραμμά σου! :)
svyr cercrv an inevrfnv cbyl tvn an gb iyrcrvf nhgb... cvtrar xnzvn ibygn yrj tj.
abresas
Δημοσιεύσεις: 2
Εγγραφή: Κυρ Φεβ 15, 2009 3:34 pm

Re: Λύσεις της Α Φασης!

Δημοσίευση από abresas »

thetrojan01: thanks :)
Απάντηση