Podczas wyświetlania programu program przestaje działać

0

Witam,
ćwiczę pisanie prostych programów w C++ i podczas wyświetlania programu (kod poniżej) program przestaje działać. Czy może mi ktoś powiedzieć jakie błędy popełniłem?

#include<stdio.h>
int main()
{
	int cukierki,dzieci,x,y;
	printf("Ile dzieci jest w klasie, lacznie z toba? Podaj liczbe:\n");
	scanf("%i",dzieci);
	printf("Ile masz cukierkow? Podaj liczbe:\n");
	scanf("%",cukierki);
	x=cukierki/(dzieci-1);
	printf("Zakladajac ze ty nie zjesz cukierka, kazdy dostanie po %d cukierki.\n",x);
	y=cukierki-x*(dzieci-1);
	printf("Zostanie ci %d cukierkow do domu,\n cieszysz sie?",y);
	return 0;
}

Z góry dzięki za pomoc.

1

Pierwszy błąd: piszesz w C w C++. Pisz w C++.

scanf("%i",dzieci);

Funkcje z rodziny scanf oczekują wskaźników za parametry, ponieważ C nie ma referencji. Masz tu UB.

scanf("%",cukierki);

Niepoprawny string formatujący, masz tu z tego powodu UB.

1

Popatrz uważnie na swoje scanfy, co to jest %i, albo samo %?
I wstaw kod w znaczniki kolorujące.

0

A teraz?

#include<stdio.h>
int main()
{
	int cukierki,dzieci,x,y;
	printf("Ile dzieci jest w klasie, lacznie z toba? Podaj liczbe:\n");
	scanf("%d",dzieci);
	printf("Ile masz cukierkow? Podaj liczbe:\n");
	scanf("%d",cukierki);
	x=cukierki/(dzieci-1);
	printf("Zakladajac ze ty nie zjesz cukierka, kazdy dostanie po %d cukierki.\n",x);
	y=cukierki-x*(dzieci-1);
	printf("Zostanie ci %d cukierkow do domu,\ncieszysz sie?",y);
	return 0;
}
0

Zignorowałeś to co napisałem.

Funkcje z rodziny scanf oczekują wskaźników za parametry, ponieważ C nie ma referencji. Masz tu UB.

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