Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   проверить решение (http://forum.oszone.net/showthread.php?t=221540)

Famous9221 27-11-2011 00:25 1804011

проверить решение
 
Даны вещественные массивы A[14] S[14].Для каждого массива определить количество элементов предшествующих первому отрицательному элементу массива.

Код:

#include <iostream.h>
#include <iomanip.h>
// прототипы функций
void inputmas (int [14][14],char);
int schet (int[14][14]);
void outrez (int [14][14],char ,int);
void main()
{
//объявление массивов и переменных
int a[14],s[14],kola,kold;
inputmas(a,'a');// в функцию в качестве аргументов передается
inputmas(s,'s');// массив и его имя (символ в апострофах)

kola=schet(a);// вызов функции
kold=schet(s);
outrez (a,'a',kola);
outrez (s,'s',kold);
}
// определение функции ввода массива input()
void inputmas ( int x[14][14],char name)
{
 int i,j;
cout <<"Вводим массив" << name << endl;
for (i=0;i<14;i++)
for (j=0;j<14;j++)
{
cout << "Введите элемент массива " << name << "[" << i << "] << "[ << j << "]=";
cin >> x[i][j];
  }
 }
//определение расчётной функции schet()
int schet (int m[14][14])
{
int i,kol,min;
min=m[0];// первоначально за min примем 1-й элемент
kol=0; // количество элементов,предшествующих минимальному
for(i=1;i<14;i++)
for(j=1;j<14;j++)
 // нашли в массиве элемент, значение которого меньше значения принятого за минимум
{
 min =m[i][j]; // заменили значение минимума
 kol=i; // количество элементов, предшествующих минимальному
}
 return(kol); // передача значения в точку вызова данной функции
}
// определение функции вывода массива outrez()
void outrez (int x[14][14],char name, int kol)
{
int i,j;
cout << "Исходный массив " << name << ":" << endl;
for (i=0;i<14;i++)
for (j=0;j<14;j++)
cout << setw (5) << x [i][j];
cout << " Наименьшему элементу в массиве" << name << "предшествует" << kol << элементов \n";
}


проверьте пожалуйста текст программы на ошибки, если таковые имеются напишите.

Drongo 27-11-2011 02:39 1804046

Цитата:

Цитата Famous9221
первому отрицательному »

Если первое отрицательное число, то сделай условие
Код:

...
//определение расчётной функции schet()
int schet (int m[14][14])
{
  int kol = 0;
...
  if(m[i][j] < 0)
      kol++; // Вычисляем кол-во чисел до первого отрицательного числа

  return kol;
}
...


Sidewalker 27-11-2011 15:54 1804264

Famous9221, код программы, который ты выложил, не соответствует заданному вопросу. Если тебе всё же надо определить количество элементов предшествующих первому отрицательному элементу массива, делай примерно так:

Код:

int schet (int m[14][14])
{
int i, kol;
kol=0; // количество элементов,предшествующих первому отрицательному!
for(i=0; i<14; i++)
for(j=0; j<14; j++)
{
if (m[i][j] >= 0) kol++ else {if (kol=0) cout << "0" else cout << kol;}; // т.е. если текущий элемент массива
// неотрицателен, то увеличиваем наш счётчик kol на единицу,
// а если же он отрицателен, то если это первый элемент (и он уже отрицательный), то выводим сразу ответ (т.е. 0), а если не первый, то выводим нужный ответ (kol)
}
 return(0); // передача значения в точку вызова данной функции
}

Вызвать эту функцию для двух массивов по очереди.

Drongo 27-11-2011 17:52 1804360

Sidewalker, Да-да, ошибочное условие. Поздно писал, уже голова не варила как оказалось.
Цитата:

Цитата Sidewalker
а во вторых, пиши мне в личное сообщение, напишу весь. »

А во-вторых, вопрос публичный, хочешь помочь - пиши здесь.

Sidewalker 28-11-2011 19:45 1805143

А может ему не надо полностью? :)

Famous9221, скажи что-нибудь.


Время: 10:13.

Время: 10:13.
© OSzone.net 2001-