Pagini recente » Cod sursa (job #289219) | Cod sursa (job #2890568) | Cod sursa (job #827660) | Cod sursa (job #1222570) | Cod sursa (job #1172256)
#include<stdio.h>
#include<stdlib.h>
int** citire(int *n,int *m)
{
int i=0,j=0;
int **v=NULL;
FILE *input=fopen("flip.in","r");
if(input==NULL)
printf("Eroare deschidere fisier");
fscanf(input,"%i %i",n,m);
v=(int**)malloc((*n)*sizeof(int*));
for(i=0;i<*n;i++)
*(v+i)=(int*)malloc((*m)*sizeof(int));
for(i=0;i<*n;i++)
for(j=0;j<*m;j++)
fscanf(input,"%i",(*(v+i)+j));//Cum ce cand?
fclose(input);
return v;
}
int rezutat(int n,int m,int **v)
{
int i=0,j=0;
int suma=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
suma+=v[i][j];
return suma;
}
void comutator(int n,int m,int **v)
{
int i=0,j=0,k=0;
int suma_negativa=0;
int suma_pozitiva=0;
for(i=0;i<n;i++)
{
suma_negativa=0;
suma_pozitiva=0;
for(j=0;j<m;j++)
{
if(v[i][j]<0)
suma_negativa=suma_negativa+v[i][j];
else
suma_pozitiva=suma_pozitiva+v[i][j];
}
suma_negativa=suma_negativa*(-1);
if(suma_negativa>suma_pozitiva)
{
for(k=0;k<m;k++)
v[i][k]=v[i][k]*(-1);
}
}
for(i=0;i<m;i++)
{
suma_negativa=0;
suma_pozitiva=0;
for(j=0;j<n;j++)
{
if(v[j][i]<0)
suma_negativa=suma_negativa+v[j][i];
else
suma_pozitiva=suma_pozitiva+v[j][i];
}
suma_negativa=suma_negativa*(-1);
if(suma_negativa>suma_pozitiva)
{
for(k=0;k<n;k++)
v[k][i]=v[k][i]*(-1);
}
}
}
void procesare(int n,int m)
{
int **v=NULL;
int rez=0;
v=citire(&n,&m);
comutator(n,m,v);
rez=rezutat(n,m,v);
FILE *output=fopen("flip.out","w");
fprintf(output,"%i",rez);
fclose(output);
}
int main()
{
int n=0,m=0;
procesare(n,m);
return 0;
}