[C] Największa wartość w signed/unsigned long int

0

Witam,
mam do napisania wypisanie kilku największych i najmniejszych wartości rożnych typów. Z int, short mi się udało, ale próbując napisać kod, który umożliwi napisanie największej wartości typu signed oraz unsigned long int program nie odpowiada. Nie wiem czy to jest spowodowane tym, że ten typ ma zakres aż: 18 446 744 073 709 551 615 i program po prostu liczy czy jednak nie działa.

Zamieszczam kod programu, mógłby mi ktoś powiedzieć w jaki sposób właśnie to obliczyć? Jakieś rady? :)

#include <stdio.h>

main()
{

		// signed long int
		long long int sl=0;

		for (; sl+1>sl; sl++);
        printf("Maksymalna wartosc w \"signed long int\" to: %u, a minimalna: %u\n\n", sl, (long)(sl+1));
        fflush(stdout);    
        
        // unsigned long int
        unsigned long long int ht=0;
        
		for (; ht+1>ht; ht++);
        printf("Maksymalna wartosc w \"unsigned long int\" to: %u, a minimalna: %u\n\n", ht, (long)(ht+1));
        fflush(stdout); 
        
        getchar();
		getchar();
		return 0;
} 
0

Policz ile czasu liczy się dla long int a potem ten czas pomnóż przez 4 mln

0

Btw: Nie ma absolutnie żadnego zgodnego ze standardem i przenośnego sposobu na obliczenie/wyznaczenie zakresów liczb ze znakiem, całkiem niedawno była o tym dyskusja. Zakresy te są zapisane w bibliotece: http://en.cppreference.com/w/c/types/limits

1 użytkowników online, w tym zalogowanych: 0, gości: 1