Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX 100
- void writeToFile() {
- FILE *f = fopen("input.txt", "w");
- char c;
- while((c = getchar()) != '#') {
- fputc(c, f);
- }
- fclose(f);
- }
- void printFile() {
- FILE *f=fopen("output.txt","r");
- char line[100];
- while(!feof(f)){
- fgets(line,100,f);
- if (feof(f))
- break;
- printf("%s",line);
- }
- fclose(f);
- }
- int main() {
- /* Vo zadachata nebeshe naglaseno no programata go kuca brojot na elementi na kvadratnata matrica na prazno pred da ja popolni nizata, tuka eden vid ja fakjame taa cifra preku scanf */
- int a;
- scanf("%d",&a);
- writeToFile();
- //otvarame input.txt datoteka vo mod za chitanje
- FILE *f;
- if ((f = fopen("input.txt","r")) == NULL ){
- printf("ERROR");
- return -1;
- }
- int n=0,i,j,sum=0;
- char niza[MAX];
- int matrice[MAX][MAX];
- /* ALTERNATIVEN NACHIN da go dobieme brojot na redici/koloni vo kvadratnata matrica, fgets chita elementi se do krajot na prviot red +1, matricata e kvadratna taka da samo ni treba da go dobieme n od prviot red*/
- while (fgets(niza,MAX,f)){
- n++;
- }
- n--;
- //Rewind ja vrakja nevidlivata strelka vo txt dokumentot na pochetok, polse koristenje na prethodniot while ciklus
- rewind(f);
- //Ja popolnuvame matricata so elementite od output txt dokumentot I gi sobirame elementite na glavnata dijagonala vo sum
- for (i=0;i<n;i++){
- for (j=0;j<n;j++){
- fscanf(f,"%d",&matrice[i][j]);
- if (i==j){
- sum+=matrice[i][j];
- }
- }
- }
- fclose(f);
- //otvarame output.txt datoteka vo mod za pechatenje (planirame da ja vneseme nashata matrica vo nea)
- FILE *end;
- if ((end = fopen("output.txt","w")) == NULL){
- fprintf(stderr,"ERROR");
- return -1;
- }
- //Go pechatime zbirot na glavnata dijagonala samo ako j>i
- // j=0 j=1 j=2 j=3
- // i=0 / 015 015 015
- // i=1 / / 015 015
- // i=2 / / / 015
- // i=3 / / / /
- for (i=0;i<n;i++){
- for (j=0;j<n;j++){
- if (j>i){
- fprintf(end,"%03d",sum);
- }
- else{
- fprintf(end," ");
- }
- fprintf(end," ");
- }
- fprintf(end,"\n");
- }
- fclose(end);
- printFile();
- return 0;
- }
Add Comment
Please, Sign In to add comment