• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Помогите найти ошибку. Please!

  • Автор темы Guest_snake_*
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_snake_*

Помогите, срочно, please. Задача:
Дана квадpатная матpица действительных чисел pазмеpности n
(n<=15). Найти наибольшее из значений элементов , pасполо-
женных в заштpихoванной части матpицы.
Код:
\*******/
\*****/
 \***/
 \*/
 /*\
 /***\
/*****\
/*******\


Мое решение работает с целами числами, а когда меняю на действительные- не работает:
Код:
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
unsigned n,i,j;
float A[15][15],max;
clrscr();
puts("Vvedite razmernost matrizcu");
scanf("%u",&n);
if (n>2 && n<=15)
{
for(i=0;i<n;i++)
 {
 for(j=0;j<n;j++)
  {
  printf("Vvedite element %u-oy stroki %u-ogo stolbzca ",i,j);
  scanf("%f",& A[i][j]);
  }
 }
max=A[0][1];

for(i=0;i<n;i++)
 {
 for(j=1;j<n;j++)
  {
  if ( ( ((i<j)&&((i+j)<(n-1))) || ((i>j)&&((i+j)>(n-1))) ) && (max>A[i][j]) )
max=A[i][j];
  }
 }
printf("Maksimalnoe znachenie elementa %f",max);
}
else
puts ("Vvedeno ne korrektnoe znachenie");
getch();
}
 
A

Anton Chik

в таких случаях я советую после ввода чисел вывести матрицу на экран - посмотреть ввелось ли...
и еще... при вводе действительных чисел в качестве разделителя целой и дробной частей чем пользуешься? точкой или запятой???
 
G

Guest_snake_*

Элементы матрицы вообще не вводятся, останавливается на scanf("%f",& A[j])
При вводе действительных пользуюсь точкой,
но в данном случаи вообще не получается ввести, выдает ошибку:
floating point formats not linked
Abnormal program termination
 
G

Guest_snake_*

Насчет минимума: опечатался надо max<A[j]
 
G

grigsoft

А сформулировать что не работает сложно? Вывавлил кучу кода, для того чтобы потом сказать что у тебя числа не вводятся??
 
G

Guest

Всем спасибо, ответ найден.
Данные надо было вводить не сразу в массив, а через другую переменную такого же типа.

......
float A[15][15],max,str;
..........
{
printf("Vvedite element %u-oy stroki %u-ogo stolbzca ",i,j);
scanf("%f",&str);
A[j]=str;
}
.........
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!