Передача значений двумерного массива через указатели - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задача: Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера вектор-строк, для которых модуль их скалярного произведения S имеет максимальное значение. Я не пойму в чем ошибка.Подскажите в чем дело.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include<math.h>
#define N 10
#define M 10
 
float sp(float*x, int n)
{
float s=0;
int i,i1,i2;
for(i=0;i<n;i++){
s=s+*(x+i1*n+i)**(x+i2*n+i);}
return s;
}
 
void main()
{
clrscr();
int  i,j,imax1=-1,imax2=-1,n,m;
float x,s, max=-9e38;
randomize();
printf("vvedite kolichectvo stolbcov ne bolshe %d",N);
scanf("%d",&n);
printf("vvedite kolichectvo strok ne bolshe %d",M);
scanf("%d",&m);
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
{
*(x+i*n+j)=rand()%201-100;
printf("%d",*(x+i*n+j));
}
}
for(i=0;i<n-1;i++){
for(j=0;j+1<n;j++){
s=sp (&x,n);
if(s>max)
{max=s;
imax1=i;
imax2=j;}
}}
printf("max=%f\n pologenie 1=%d pologenie 2=%d",max,imax1,imax2);
}

Решение задачи: «Передача значений двумерного массива через указатели»

textual
Листинг программы
*(x+i*n+j)=rand()%201-100;

Объяснение кода листинга программы

В данном коде происходит инициализация двумерного массива случайными значениями. Вот список действий, которые выполняются в коде:

  1. x - это указатель на первый элемент массива.
  2. i и j - это индексы текущего элемента массива.
  3. n - это размер массива.
  4. rand() - это функция, которая генерирует случайное число в диапазоне от 0 до 200.
  5. -100 - это смещение, которое вычитается из случайно сгенерированного числа, чтобы получить диапазон от -100 до 100.
  6. *(x+i*n+j) - это выражение, которое присваивает случайное значение элементу массива с индексами i и j. Таким образом, в результате выполнения данного кода, каждый элемент двумерного массива будет инициализирован случайным значением в диапазоне от -100 до 100.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5
Похожие ответы