Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Cи] Нахождение макс и миним


Автор: motya24 18.12.2007, 18:46
Вот написала прогу, а мой Си не воспринимает прототип функции vvod . Может у меня где-то ошибка есть, посмотрите пожалуйста! Заранее благодарна 
Код

#include<stdio.h>
#include<conio.h>
#include<math.h>

#define Nx  7
#define Ny 5
#define Nz  9

void vvod(float a[], int n, char q);
void analiz(float a[ ],int n, float *mini,int *n_mini, float *maxi,int*n_maxi);

void main()
{
float x[Nx], y[Ny], z[Nz], min, max;
int n_min,n_max;
vvod(x, Nx, 'x');
vvod(y, Ny, 'y');
vvod(z, Nz, 'z');

analiz(x, Nx, &min, &n_min, &max,&n_max);
printf("Для массива x мин.эл x[%i]=%f и  макс.эл  x[%i]=%f  \n", min,n_min,max,n_max);
analiz(y, Ny, &min, &n_min, &max,&n_max);
printf("Для массива x мин.эл x[%i]=%f и  макс.эл  x[%i]=%f  \n", min,n_min,max,n_max );
analiz(z, Nz, &min, &n_min, &max,&n_max);
printf("Для массива x мин.эл x[%i]=%f и  макс.эл  x[%i]=%f  \n", min,n_min,max,n_max);
}

void analiz (float a[ ],int n, float *mini,int *n_mini, float *maxi,int*n_maxi)
{
int i;
*mini=a[0];
*n_mini=0;
*maxi=a[0];
*n_mini=0;
for(i=0; i<n; i++)
{
if(a[i]<*mini)
{
*mini=a[i];
*n_mini=i;
}
else
if(a[i]>*maxi)
{
*maxi=a[i];
*n_maxi=i;
}
return;
}
void vvod(float a[ ], int n, char q)
{
int i;
for (i=0; i<n; i++)
{
printf("Введите элемент %c[%i]=\n",q,i);
scanf("%f",&a[i]);
}
return;
}

Автор: zkv 18.12.2007, 18:54
Цитата(motya24 @  18.12.2007,  18:46 Найти цитируемый пост)
Вот написала прогу, а мой Си не воспринимает прототип функции vvod .

А чего говорит? 
А что за компилятор?
Можно нормально вопрос задать?

Автор: motya24 18.12.2007, 18:57
Цитата(zkv @ 18.12.2007,  18:54)
Цитата(motya24 @  18.12.2007,  18:46 Найти цитируемый пост)
Вот написала прогу, а мой Си не воспринимает прототип функции vvod .

А чего говорит? 
А что за компилятор?
Можно нормально вопрос задать?

BCPP

Добавлено через 1 минуту и 17 секунд
Цитата(motya24 @ 18.12.2007,  18:57)
Цитата(zkv @ 18.12.2007,  18:54)
Цитата(motya24 @  18.12.2007,  18:46 Найти цитируемый пост)
Вот написала прогу, а мой Си не воспринимает прототип функции vvod .

А чего говорит? 
А что за компилятор?
Можно нормально вопрос задать?

BCPP

пишет что функция непрвлено обьявлена, но я думаю может что-то в проге не так

Автор: zkv 18.12.2007, 19:01
Цитата(motya24 @  18.12.2007,  18:57 Найти цитируемый пост)
BCPP

какой?
Цитата(motya24 @  18.12.2007,  18:57 Найти цитируемый пост)
пишет что функция непрвлено обьявлена, но я думаю может что-то в проге не так

что говорит, дословно? (не у всех стоит BCPP неизвестной версии, да и телепатические способности не очень развиты)

Автор: WEM 18.12.2007, 19:42
У тебя пропущена фигурная скобочкаsmile
Код

void analiz (float a[ ],int n, float *mini,int *n_mini, float *maxi,int*n_maxi)
{
int i;
*mini=a[0];
*n_mini=0;
*maxi=a[0];
*n_mini=0;
for(i=0; i<n; i++)
{
if(a[i]<*mini)
{
*mini=a[i];
*n_mini=i;
}
else
if(a[i]>*maxi)
{
*maxi=a[i];
*n_maxi=i;
}
} //vot tyt ee ne hvatalo:)
return;
}

Автор: motya24 19.12.2007, 01:19
Цитата(WEM @ 18.12.2007,  19:42)
У тебя пропущена фигурная скобочкаsmile

Спасибки большое, только в результате нули выдаёт, что-то в проге не так! Может кто-то увидет ошибку? спасибо

Автор: WEM 19.12.2007, 17:54
Не могу понять, тебе нужно найти мин. и макс. элемент в массиве или что?

Автор: motya24 19.12.2007, 23:27
Цитата(WEM @ 19.12.2007,  17:54)
Не могу понять, тебе нужно найти мин. и макс. элемент в массиве или что?

да, ещё и номера этих элементов. Так же нужно чтобы данные в функцию передавались по ссылке

Автор: motya24 20.12.2007, 12:48
Мне кажется здесь ошибка в операции сравнения!
Код

if(a[i]<*mini)

Подскажите кто-нибудь!!!!!!

Автор: twise 19.1.2008, 12:12
if(a[i]<min[i])
или так if(a[i]<*(min+i))

Автор: Dov 19.1.2008, 21:06
Цитата(motya24 @  19.12.2007,  00:19 Найти цитируемый пост)
Спасибки большое, только в результате нули выдаёт, что-то в проге не так!

Так нужно:
Код
    analiz(x, Nx, &min, &n_min, &max, &n_max);
    printf("Для массива x мин.эл x[%i] = %f и макс.эл x[%d] = %f  \n", n_min, min, n_max, max);
    analiz(y, Ny, &min, &n_min, &max, &n_max);
    printf("Для массива y мин.эл y[%i] = %f и макс.эл y[%i] = %f  \n", n_min, min, n_max, max);
    analiz(z, Nz, &min, &n_min, &max, &n_max);
    printf("Для массива z мин.эл z[%i] = %f и макс.эл z[%i] = %f  \n", n_min, min, n_max, max);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)