• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program z użyciem tablic, funkcji i wskaźników.

0 głosów
204 wizyt
pytanie zadane 12 stycznia 2017 w C i C++ przez kidcudi6 Nowicjusz (170 p.)

Witam, chciałem napisać program w języku C, który z danej tablicy wyszukuje największą i najmniejszą liczbę, a następnie funkcję, która zamieni indeksy miejscami. Problem w tym, że nie wiem jak przekazać wartości z funkcji które wyszukują indeksy najmniejszej i największej liczby do funkcji która zamieni miejscami indeksy tych liczb. Bardzo bym prosił o pomoc/ wytłumaczenie w jaki sposób miałbym to zrobić. Poniżej podaję kod programu.

#include <stdio.h>
#define N 10

void zmiana(double *a, double *b){
    double c;
    c=*a;
    *a=*b;
    *b=c;
}
void szmin(double t[]){
    int i, indexmin;
    double min=t[0];
    for(i=0; i<N; i++){
        if(min>t[i]){
            min=t[i];
            indexmin=i;
        }
    }
    return indexmin;
}
int szmax(double t[]){
    int i, indexmax;
    double max=t[0];
    for(i=0; i<N; i++){
        if(max<t[i]){
            max=t[i];
            indexmax=i;
        }
    }
    return indexmax;
}
int main(){
    double tab[N]={19,-4,-8,9,13,20,7,12,-17,-30};
    int i,*a=0,*b=0;
    printf("\tZawartosc tablicy przed zmianami:\n");
    for(i=0; i<N; i++){
        printf("\t\t%f\n", tab[i]);
    }
    szmax(tab);
    szmin(tab);
    zmiana();

    printf("\n\tZawartosc tablicy po zmianach:\n\n");
    for(i=0; i<N; i++){
        printf("\t\t%f\n", tab[i]);
    }
}

 

komentarz 12 stycznia 2017 przez Pajdas Mądrala (5,930 p.)
zmiana();

w funkcji main nie podajesz argumentów

komentarz 12 stycznia 2017 przez kidcudi6 Nowicjusz (170 p.)
Bo nie wiem jak przekazać do funkcji zmiana wartości z szmax i szmin.
komentarz 12 stycznia 2017 przez Pajdas Mądrala (5,930 p.)
funkcja zmiana przyjmuje wartości double a funkcja szmax i szmin zwracają int'a
komentarz 12 stycznia 2017 przez Pajdas Mądrala (5,930 p.)
przyjmują wskaźnik na double (poprawka).
aby przekazywać orginał do funkcji zmiana możesz użyć przekazania przez referencje
1
komentarz 12 stycznia 2017 przez unknown Nałogowiec (39,620 p.)
W C nie ma referencji.

1 odpowiedź

+1 głos
odpowiedź 12 stycznia 2017 przez unknown Nałogowiec (39,620 p.)
szmax(tab);
szmin(tab);
zmiana();

Zmień na:

zmiana(&tab[szmax(tab)], &tab[szmin(tab)]);

 

komentarz 12 stycznia 2017 przez unknown Nałogowiec (39,620 p.)
I zmień typ zwracany z funkcji szmin na int
komentarz 12 stycznia 2017 przez kidcudi6 Nowicjusz (170 p.)
O to mi właśnie chodziło, wielkie dzięki za pomoc ! :)

Podobne pytania

0 głosów
1 odpowiedź 64 wizyt
0 głosów
1 odpowiedź 893 wizyt
pytanie zadane 3 stycznia 2016 w C i C++ przez CichoCiemny Początkujący (480 p.)
0 głosów
1 odpowiedź 183 wizyt

88,667 zapytań

137,276 odpowiedzi

306,616 komentarzy

58,867 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...