[C] Największa wartość w tablicy przy użyciu wskaźników.

Awatar użytkownika
Assassin-Girl
Użytkownik
Użytkownik
Posty: 76
Rejestracja: 22 lut 2013, o 18:32
Płeć: Kobieta
Lokalizacja: Maczu-Pikczu
Podziękował: 33 razy

[C] Największa wartość w tablicy przy użyciu wskaźników.

Post autor: Assassin-Girl »

Cześć, oto kod:

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int* max_wsk(int tab[])
{
   int i, i_max;
   for (i=1;i<10;i++)
      if (tab[i]>tab[i_max])
         i_max = i;
   return &tab[i_max];
}

int main(void)
{
	int i, tab[10];
	printf("TABLICA:

");
	for (i=0;i<10;i++)
	{
		printf("Tab[%d]	: ",i+1);
		scanf ("%d",&tab[i]);
 	}
        max_wsk(tab);
        printf...
}
I tutaj się pojawia moje pytanie, jak wyświetlić na ekranie efekt działania funkcji max_wsk przy użyciu printf? Za wszelkie odp. wielkie dzięki. ;)
Ostatnio zmieniony 28 kwie 2014, o 08:06 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C] Największa wartość w tablicy przy użyciu wskaźników.

Post autor: kalwi »

może zacznij na początek od błędów semantycznych.
A konkretnie używasz i_max w funkcji, pomimo tego, że ma niezainicjowaną wartość.-- 28 kwi 2014, o 00:04 --Kolejna rzecz, po co biblioteka <string.h> i <stdlib.h>?

Kod: Zaznacz cały

#include <stdio.h>

int* max_wsk(int tab[])
{
	int i, i_max=0;
	for (i = 0; i<10; i++)
		if (tab[i]>tab[i_max])
			i_max = i;
	return &tab[i_max];
}

int main(void)
{
	int i, tab[10];
	printf("TABLICA:

");
	for (i = 0; i<10; i++)
	{
		printf("Tab[%d]	: ", i + 1);
		scanf("%d", &tab[i]);
	}
	printf("%d
", *max_wsk(tab));
	return 0;
}
Awatar użytkownika
Assassin-Girl
Użytkownik
Użytkownik
Posty: 76
Rejestracja: 22 lut 2013, o 18:32
Płeć: Kobieta
Lokalizacja: Maczu-Pikczu
Podziękował: 33 razy

[C] Największa wartość w tablicy przy użyciu wskaźników.

Post autor: Assassin-Girl »

Dziękuję bardzo.

...a co do bibliotek, to piszę je z rozpędu. Jeśli można spytać, nadmiar niepotrzebnych bibliotek ma wpływ na działanie programu?
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C] Największa wartość w tablicy przy użyciu wskaźników.

Post autor: kalwi »

pewnie jakiś tam ma (mówię tu o czasie), bo kompilator musi przeczytać tę część kodu. Ale ten wpływ jest pomijalnie mały. Bardziej chodzi o to, że może to wprowadzać w błąd programistę, który patrzy potem na ten kod.
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C] Największa wartość w tablicy przy użyciu wskaźników.

Post autor: Althorion »

Dodanie niepotrzebnych plików nagłówkowych wydłuży tylko czas kompilacji (bo, tak jak mówi kalwi, kompilator będzie musiał je sobie „przyswoić”), szybkość działania programu się nie zmieni. Jeśli mamy program wykorzystujący liczne pliki nagłówkowe, szczególnie gdy te stają się bardziej skomplikowane (jak np. nagłówki Boost), warto rozważyć ich prekompilację celem przyspieszenia procesu rozwoju oprogramowania. Ma to szczególne znaczenie w C++, ze względu na pojawienie się wielu cech spowalniających parsowanie, takich jak szablony.
Linkowanie dodatkowych bibliotek natomiast zwiększa rozmiar wynikowego pliku binarnego, co może (ale nie musi) powodować spowolnienie programu.
ODPOWIEDZ