Ntony
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Задача звучит следующим образом: Дан массив 5 на 5. Найти в массиве минимальный элемент и записать в массив X[i] 1 если этот элемент содержится в [i] строке и -1 в противном случае. Проблема при выводе этого самого массива X. Выводит числа -56 -48 и т.п. Вот текст программы: #include <stdio.h> #define n 5 void read_matr (int a[n][n]) {int i,j; FILE *fp; fp=fopen("in.txt","r"); printf("Input a[][]:\n"); for (i=0;i<n;i++) for (j=0;j<n;j++) fscanf(fp,"%d",&a[i][j]); fclose(fp); } void input_matr(int a[n][n]) {FILE *f; int i,j,z; read_matr(a); } int min_el(int (*a)[n]) {int i,j,min=a[0][0]; for (i=0;i<n;i++) for (j=0;j<n;j++) if(a[i][j]<min) min=a[i][j]; return min; } int *mas_x (int a[n][n],int *x) {int i,j; int min_str,min; min=min_el(a); for(i=0;i<n;i++) {min_str=a[i][0]; for (j=0;j<n;j++) if(a[i][j]<min_str) min_str=a[i][j]; if (min_str==min) x[i]=1; else x[i]=-1; } return x; } void main(int a[n][n],int *x) {int i,j; FILE *f=fopen("out2.txt","w"); fprintf(f,"matr a[][]\n"); for (i=0;i<n;i++) {for (j=0;j<n;j++) fprintf(f,"%4d",&a[i][j]," "); fprintf(f,"\n"); } fprintf(f,"\n Massiv X: \n"); for (i=0;i<n;i++) fprintf(f,"%4d ",&x[i]); printf("\n"); fclose(f); } |