PDA

Показать полную графическую версию : проверить решение


Famous9221
27-11-2011, 00:25
Даны вещественные массивы 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
первому отрицательному »Если первое отрицательное число, то сделай условие
...
//определение расчётной функции schet()
int schet (int m[14][14])
{
int kol = 0;
...
if(m[i][j] < 0)
kol++; // Вычисляем кол-во чисел до первого отрицательного числа

return kol;
}
...

Sidewalker
27-11-2011, 15:54
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
Sidewalker, Да-да, ошибочное условие. Поздно писал, уже голова не варила как оказалось.а во вторых, пиши мне в личное сообщение, напишу весь. »А во-вторых, вопрос публичный, хочешь помочь - пиши здесь.

Sidewalker
28-11-2011, 19:45
А может ему не надо полностью? :)

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




© OSzone.net 2001-2012