w którym miejscu błąd?

0

Dlaczego program konczy sie na wyswietleniu cout << sum2 / sizeof(t2) << endl; ? Gdzie jest błąd, że po tej linijce dalej nie leci

#include <iostream>
#include <cmath>

using namespace std;

void zad1() {
	char t2[2] = { 'p', 'q' };
	int t3[2];
	double avg;
	double sum2 = 0;
	double sum3 = 0;
	for (int i = 0; i < sizeof(t2); i++) {
		sum2 += int(t2[i]);
	}
	cout << sum2 / sizeof(t2) << endl;

	for (int j = 0; j < sizeof(t3); j++) {
		cin >> t3[j];
		sum3 += t3[j];
	}
	avg = sum3 / sizeof(t3);
	int nearest = fabs(avg - t3[0]);
	for (int k = 1; k < sizeof(t3); k++) {
		if (fabs(avg - t3[k]) < fabs(avg - nearest))
		nearest = t3[k];
	}
	cout << nearest<< endl;
}

int main() {

	zad1();

	return 0;
}

1

sizeof(t3) - zwróci ci wartość 2*sizeof(int)
zamień na sizeof(t3)/sizeof(*t3)

0
micw napisał(a):

ponieważ tak założyłem, że mniejsza liczba będzie bliższa i nie wiem czy to błędne założenie bo nie mam innego pomysłu na to zadanie.

Jestem ciekaw co byś zrobił gdybyś miał np 2 kawiarnie, obie w odległości 2km od Ciebie :D którą z nich byś uznał za najbliżej średniej?

Tą bardziej na północ? Xd tą bliżej 45° szerokości geograficznej północnej, czy jakieś inne bezsensowne założenie?

0
TomRiddle napisał(a):
micw napisał(a):

ponieważ tak założyłem, że mniejsza liczba będzie bliższa i nie wiem czy to błędne założenie bo nie mam innego pomysłu na to zadanie.

Jestem ciekaw co byś zrobił gdybyś miał np 2 kawiarnie, obie w odległości 2km od Ciebie :D którą z nich byś uznał za najbliżej średniej?

Tą bardziej na północ? Xd tą bliżej 45° szerokości geograficznej północnej, czy jakieś inne bezsensowne założenie?

Wyświetlił bym dwie:)

0
#include <iostream>
#include <cmath>
using namespace std;

int main() 
{
    char tb[]={'r','r','p','q','p','p','p','q','q','r','r'};
    const size_t count=sizeof(tb);
    unsigned long sum=0;
    for(size_t i=0;i<count;++i) sum+=tb[i];
    size_t imax=0,imin=0;
    for(size_t i=0;i<count;++i)
    {
    	if(labs(sum-count*tb[imax])<labs(sum-count*tb[i])) imax=i;
    	if(labs(sum-count*tb[imin])>labs(sum-count*tb[i])) imin=i;
    }
    cout<<"nearest: ";
    for(size_t i=0;i<count;++i) if(labs(sum-count*tb[imin])==labs(sum-count*tb[i])) cout<<tb[i];
    cout<<endl;
    cout<<"farest: ";
    for(size_t i=0;i<count;++i) if(labs(sum-count*tb[imax])==labs(sum-count*tb[i])) cout<<tb[i];
    cout<<endl;
	return 0;
}

https://ideone.com/EcwtKE

0
micw napisał(a):
TomRiddle napisał(a):
micw napisał(a):

ponieważ tak założyłem, że mniejsza liczba będzie bliższa i nie wiem czy to błędne założenie bo nie mam innego pomysłu na to zadanie.

Jestem ciekaw co byś zrobił gdybyś miał np 2 kawiarnie, obie w odległości 2km od Ciebie :D którą z nich byś uznał za najbliżej średniej?

Tą bardziej na północ? Xd tą bliżej 45° szerokości geograficznej północnej, czy jakieś inne bezsensowne założenie?

Wyświetlił bym dwie:)

Dobre, ale to tak nie działa, liczy się pierwsza

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