• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите найти ошибку. 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;
}
.........
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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