Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование. Массивы. Работа с максимальным значением и суммой.

Илья Волков Ученик (94), на голосовании 1 неделю назад
 #include <stdio.h> 
#include <stdlib.h>
#include <math.h>
int xsum(int k, int n, int **x)
{
int i, s=0;
for(i=0; i<n; i++)
s += fabs(x[k][i]);
return s;
}

void xmax(int n, int*x, int*r, int*k)
{
int i;
*r=x[0]; *k=0;
for(i=1;i<n;i++)
if (x[i]>*r)
{
*r=x[i]; *k=i;
}
return;
}

int main()
{
int i, j, n, m, k, r, *y, *x, *s, **a;
FILE *in;
if((in=fopen("digits.txt","r"))==NULL){
printf("\nFile is not opened");
getchar();
exit(1);
}

printf("Type values of m and n: ");

scanf("%d%d", &m, &n);
x=(int*)malloc(n*sizeof(int));
s=(int*)malloc(n*sizeof(int));
a=(int**)malloc(m*sizeof(int*));

for(i=0;i<m;i++)
a[i]=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(in, "%d",&a[i][j]);

printf("Type the number of the column (k): ");

scanf("%d", &k);

xmax(m, y, &r, &k);

y = (int*)malloc(n * sizeof(int));

for(i=0;i<n;i++)
y[i] = a[i][k];

printf("summ = %d, max_element = %d", xsum(k, n, a), r);

for(i=0;i<n;i++)
free(a[i]);
free(a); free(x); free(s); free(y);
fclose(in);

getchar();
}
Задание: дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ом столбце найти максимальный элемент.
В той строке, где этот элемент находится, найти сумму модулей
элементов.
В чем ошибка?
Голосование за лучший ответ
Krab Bark Искусственный Интеллект (294599) 1 месяц назад
#include <stdio.h>
#include <math.h>
int main(){
int n,m,k; printf("N M k: "); scanf("%d%d%d",&n,&m,&k); k--;
int a[n][m],i,j,p=0,s=0; FILE *fp; fp=fopen("matrix.txt","r");
for(i=0;i<n;i++)for(j=0;j<m;j++)fscanf(fp,"%d",&a[i][j]);
for(i=1;i<n;i++)if(a[i][k]>a[p][k])p=i; fclose(fp);
for(j=0;j<m;j++)s+=abs(a[p][j]); printf("sum=%d",s);return 0;}
Валентин Артамонов Профи (592) 1 месяц назад
Лайты, пишу на пайтоне.
import numpy as np

# Чтение матрицы из файла
def read_matrix_from_file(filename):
with open(filename, 'r') as file:
lines = file.readlines()
matrix = []
for line in lines:
row = list(map(int, line.split()))
matrix.append(row)
return np.array(matrix)

# Ввод числа k с клавиатуры
k = int(input("Введите номер столбца k: "))

# Чтение матрицы из файла
filename = "matrix.txt" # Укажите имя файла с матрицей
A = read_matrix_from_file(filename)

# Проверка, что k находится в допустимых пределах
if k < 0 or k >= A.shape[1]:
print("Номер столбца k выходит за пределы матрицы.")
else:
# Нахождение максимального элемента в k-ом столбце
max_element = np.max(A[:, k])

# Нахождение индекса строки, в которой находится максимальный элемент
max_row_index = np.where(A[:, k] == max_element)[0][0]

# Нахождение суммы модулей элементов в этой строке
sum_of_abs = np.sum(np.abs(A[max_row_index, :]))

print(f"Максимальный элемент в столбце {k}: {max_element}")
print(f"Сумма модулей элементов в строке с максимальным элементом: {sum_of_abs}")

Похожие вопросы