C
CRESTEEN
ребят помогите пожалуйста. написала программу, но преподаватель сказал что неправильно идет поиск минимального значения элемента и алгоритм перестановки. и в каждой функции массив должен передаваться в качестве параметра один раз. не пониамю как сделать. Обьясните пожалуйста))))
вот задание
Написать функцию, которая находит минимальный элемент в массиве среди положительных (если такого нет, то вернуть значение -1) и меняет его местами с последним элементом массива. Функция должна возвращать значение минимального элемента. Использование глобальных переменных внутри функции запрещено (т.е. массив должен передаваться как параметр). Написать программу, в которой при помощи генератора псевдослучайных чисел создаются два одномерных массива одинакового размера. К ним должна быть применена описанная выше функция. На экран должны быть выведены начальные массивы, их найденные минимальные элементы и измененные массивы. Создание и вывод массивов оформить в виде функций, не возвращающих значений.
вот мой код
вот задание
Написать функцию, которая находит минимальный элемент в массиве среди положительных (если такого нет, то вернуть значение -1) и меняет его местами с последним элементом массива. Функция должна возвращать значение минимального элемента. Использование глобальных переменных внутри функции запрещено (т.е. массив должен передаваться как параметр). Написать программу, в которой при помощи генератора псевдослучайных чисел создаются два одномерных массива одинакового размера. К ним должна быть применена описанная выше функция. На экран должны быть выведены начальные массивы, их найденные минимальные элементы и измененные массивы. Создание и вывод массивов оформить в виде функций, не возвращающих значений.
вот мой код
C++:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
const int n=10; //globalnaya tipizirovannaya konstanta n - kol-vo elementov
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//funkziya vozvraschaet index min polozhitelnogo elementa
int getmin(int ar[n]){
int i,j=0;//schetchik i resultat funkzii
int ch=0;//logicheskaya peremennaya
for (i=1;i<n;i++){//prosmotr elementov so 2
if ((ar[i]>0)&&(ch==0)){ch=1;j=i;}//esli vstretili polozhitelniy element ch=1
if ((ar[i]<ar[j])&&(ch==1)&&(ar[i]>0))j=i;//ischem min iz ostavshihsya >0
}
if (ch==0){j=-1;}//vozvraschaem -1 esli net >0
return j;}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//zapolnyaem massivi psevdosluchaynimi chislami
int rma(int ar1[n],int ar2[n]){
int k;//schetchik
for (k=0;k<n;k++){//zapolnyaem oba massiva
ar1[k]=random(201)-100;
ar2[k]=random(201)-100;
}
return 0;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//vivodim zadanniy massiv
int oa(int arr[n]){int k;//schetchik
for (k=0;k<n;k++){
printf ("%4i",arr[k]);
}
return 0;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
int main(){
int a1[n],a2[n];//obyavlyaem 2 massiva
int l,t,p;//l-swaper, t,p - znachenie funkzii getmin dlya a1 i a2))
clrscr();//chistim ekran (modul conio)
randomize();//vkluchaem generator psevdosluchaynyh chisel(modul stdlib)
rma(a1,a2);//zapolnyaem
t=getmin(a1);//uznayem index min >0 v 1 massive
p=getmin(a2);//uznayem index min >0 vo 2 massive
//`````````````````````````````````````//
printf("\n\n");//otstup dlya krasoty
oa(a1);//vivodim 1 massiv
if (getmin(a1)!=-1){
//esli est >0 element to menyaem min iz >0 s poslednim cherez l
printf("\n%i\n",a1[getmin(a1)]);
l=a1[n-1];
a1[n-1]=a1[t];
a1[t]=l;
printf("\n\n"); } else printf("vse ne polozhitelnye");
//libo vivodim soobschenie mol nete >0
oa(a1);
//vivodim izmenenniy ili ne tronutiy massiv
printf("\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
//`````````````````````````````````````//
printf("\n\n");//otstupbl dlya kpacoTbl
oa(a2);//vyvodim 2 massiv
if (getmin(a2)!=-1){//esli est >0 to menyaem min iz >0 s poslednim cherez l
printf("\n%i\n",a2[getmin(a2)]); printf("\n\n");
l=a2[n-1];
a2[n-1]=a2[p];
a2[p]=l; }else printf("vse ne polozhitelnye");
//vivodim soovschenie mol oshibochka vyshla netu >0
oa(a2);//vivodim izmenenniy ili ne tronutiy 2 massiv
//````````````````````````````````````//
getch();//smotrim KpacoTy (modulya ne nado)
return 0; }