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


Автор: AlLaG 8.12.2007, 18:38
Задали сделать лабу (только в С):


Найти два наибольших (наименьших) элемента данного массива за 1 цикл. С функцией. Значения любые. 

 smile  smile  smile 

Выручайте народ, сам несправлюсь (

Автор: MAKCim 8.12.2007, 19:32
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: orthrus 8.12.2007, 20:18
Вот проверь:

Код

#include <stdio.h>

void func(int* mass, int size, int& el1, int& el2)
{
    if (mass[0] < mass[1]) {el1 = mass[0];el2 = mass[1];}
    else {el1 = mass[1];el2 = mass[0];}
    for (int i = 2; i<size; ++i){
        if (el2 < mass[i]) {
            el1 = el2;
            el2 = mass[i];
        }
        else { if (el1 < mass[i]) el1 = mass[i];}
    }
}

int main () 
{ 
    int mass[] = {4,400,7,5,9,1,90,34,2,400,56,99,2,5,34,12};
    int size = (sizeof(mass)/sizeof(mass[0]));
    int m1,m2;
    func(mass,size,m1,m2);
    printf("%d\n%d\n", m1, m2);
    return 0; 
} 


Автор: AlLaG 8.12.2007, 21:04
нужно чтоб она была в Си, д С++ недошли, и что бы было такого типо:

#inlude <stdio.h>
float max1, max2
{
int 
..
.
.                                       функция (желательно без новоротов по простому чтоб препод незаполил)
.
return ..;

}
main ()
{
int .....
.
.[U]
.                                        Программа
.

.
.
printf ("\n ..") 
}[/U]


Можете так какнибудь? Простенько и обязательно в Си а не С++


Автор: likehood 8.12.2007, 21:33
Цитата(AlLaG @  8.12.2007,  21:04 Найти цитируемый пост)
нужно чтоб она была в Си, д С++ недошли

Код

#include <stdio.h>

void func(int* mass, int size, int *el1, int *el2)
{
    if (mass[0] < mass[1]) {*el1 = mass[0]; *el2 = mass[1];}
    else {*el1 = mass[1]; *el2 = mass[0];}
    for (int i = 2; i<size; ++i){
        if (*el2 < mass[i]) {
            *el1 = *el2;
            *el2 = mass[i];
        }
        else { if (*el1 < mass[i]) *el1 = mass[i];}
    }
}

int main () 
{ 
    int mass[] = {4,400,7,5,9,1,90,34,2,400,56,99,2,5,34,12};
    int size = (sizeof(mass)/sizeof(mass[0]));
    int m1,m2;
    func(mass,size,&m1,&m2);
    printf("%d\n%d\n", m1, m2);
    return 0; 
} 


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