Maksimum z trzech liczb

0

Napisałem wydaje się prosty program na wyszukiwanie największej wartości spośród trzech liczb, nie wiem czemu zwraca on pierwsza wpisaną liczbę, proszę o pomoc

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

int main()

{
    int i, tab[2], max;

    for (i = 0; i < 3; i++) {
        printf("podaj element tab[%d]\n", i);
        scanf("%d", &tab[i]);
    }
    max = tab[0];
    for (i = 0; i < 3; i++) {
        if (tab[i] > max) {
            tab[i] = max;
        }
    }
    printf("Największą wartością jest %d", max);
    return 0;
}
3

Co tu przypisujesz do czego?

tab[i] = max;

PS: formatuj kod, fatalnie się to czyta.

0

Dzięki, niedopatrzyłem

2

Dla 3 liczb można krócej:

C

#include <stdio.h>
 
int main()
{
    int a, b, c, d;
    while(scanf("%d%d%d",&a,&b,&c) == 3) {
  	  d = a > b ? a : b;
	  d = d > c ? d : c;
      printf("max(%d, %d, %d) = %d\n",a, b, c, d);
    } 
}

https://ideone.com/K9PCid

C++


#include <iostream>
using namespace std;
 
// maximum of 3 ints
int main() {
	int a, b, c, d;
	while (cin >> a >> b >> c) {
		d = a > b ? a : b;
		d = d > c ? d : c;
		cout << "max(" << a << ", " << b << ", " << c << ") = " << d << endl;
	}
	return 0;
}

https://ideone.com/VZXJv3

0

@vpiotr:
Tak, ale kod miał być w języku c, który nie obsługuje biblioteki iostream

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