Pagini recente » Cod sursa (job #867227) | Cod sursa (job #2408328) | Cod sursa (job #2538347) | Cod sursa (job #706320) | Cod sursa (job #119219)
Cod sursa(job #119219)
#include <stdio.h>
#include <stdlib.h>
#define MAX 15
#define MAXLEN 1024
#define FLIP_IN "flip.in"
#define FLIP_OUT "flip.out"
int ment[MAX][MAX]; // matricea cul
int n, m; // n linii, m coloane
int main(void){
int i, j, k, l;
FILE *fp;
char line[MAXLEN];
int inv_l=0;
int inv_c=0;
printf("flipfukr v0.1 by ment\nw00t w00t w00t w00t w00t w00t\n");
if ((fp = fopen(FLIP_IN, "r")) == NULL) {
printf("nu pot deschide %s\n", FLIP_IN);
exit(1);
}
// citim N SI M DAAAAAAAAAAAAAAAAAa
fgets(line, MAXLEN, fp);
if(!(sscanf(line, "%d %d", &n, &m) > 0)) {
printf("nu gasesc n/m in %s\n", FLIP_IN);
exit(1);
}
printf("n = %d\nm= %d\n", n, m);
// incepem sa citim matricea NEGRULE W00T!
for(i=0; i<n; i++){
for(j=0; j<m; j++){
int value;
if(fscanf(fp, "%d", &value) != 1){
break;
}
ment[i][j] = value;
}
}
fclose(fp); // am terminat cu FLIP_IN
afisare_matrice();
int S;
// testam pa linii sumele etc
linii_begin:
for(i=0; i<n; i++){
inv_l=0;
S=0;
for(j=0; j<m; j++) S+= ment[i][j];
if(S<0){
for(j=0; j<m; j++) ment[i][j] = ~ment[i][j]+1;
printf("\npa linia %d S = %d !\n", i+1, S);
inv_l=1;
}
if(inv_l) break;
}
if(inv_l) goto linii_begin;
afisare_matrice();
// testam pa coloane
for(j=0; j<m; j++){
inv_c=0;
S=0;
for(i=0; i<n; i++) S+= ment[i][j];
if(S<0){
for(i=0; i<n; i++) ment[i][j] = ~ment[i][j]+1;
printf("\npa coloana %d S = %d !\n", j+1, S);
inv_c=1;
}
if(inv_c) break;
}
if(inv_c) goto linii_begin;
afisare_matrice();
int Suma=0;
for(i=0; i<n; i++){
for(j=0; j<m; j++){
Suma+= ment[i][j];
}
}
printf("%d\n", Suma);
if ((fp = fopen(FLIP_OUT, "w")) == NULL) {
printf("nu pot crea/scrie in %s\n", FLIP_OUT);
exit(1);
}
fprintf(fp, "%d\n", Suma);
fclose(fp); // am terminat si cu FLIP_OUT
return 0;
}
afisare_matrice(){
int i, j;
// afisam matricea \o/
printf("-----------------------------------\n");
for(i=0; i<n; i++){
for(j=0; j<m; j++){
printf("%d ", ment[i][j]);
}
printf("\n");
}
}