Wątek przeniesiony 2017-06-08 20:39 z C/C++ przez Patryk27.

Program zawsze zwraca zero

0

Witam zainteresowałem się językiem C i mam pewien problem. Chciałem napisać program który "symuluje" rzut 2 kostkami tzn po wprowadzeniu cyfry oblicza prawdopodobieństwo wystąpienia kolejnych cyfr. Założenie jest takie że a to wprowadzana cyfra, p to prawdopodobieństwo, x to liczniki ułamka i one się nie zmieniają, y to mianowniki ułamka (każda z 11 kombinacji ma swój). Problemem jest to że wynik zawsze wychodzi 0.00000 choć nie do końca wiem dlaczego. Czy ten program ma prawo działać albo czy ja popełniłem gdzieś błąd? W każdym razie prosiłbym o pomoc

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

int main(int argc, char *argv[]) {
	int a;
	double p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12; 
	int x2x12=1, x3x11=2, x4x10=3, x5x9=4, x6x8=5, x7=6; 
	int y2=36, y3=36, y4=36, y5=36, y6=36, y7=36, y8=36, y9=36, y10=36, y11=36, y12=36; 
	
	
	etykieta:
	puts("podaj cyfre");
	scanf("%d",&a);
	
	switch(a){
				case 2: 
	y2=y2*2;
	y3=y3-x3x11;
	y4=y4-x4x10; 
	y5=y5-x5x9; 
	y6=y6-x6x8;
	y7=y7-x7; 
	y8=y8-x6x8;
	y9=y9-x5x9;
	y10=y10-x4x10;
	y11=y11-x3x11;
	y12=y12-x2x12;
				break;
				case 3: 
	y3=y3*2; 
	y2=y2-x2x12;
	y4=y4-x4x10;
	y5=y5-x5x9; 
	y6=y6-x6x8;
	y7=y7-x7;
	y8=y8-x6x8;
	y9=y9-x5x9;
	y10=y10-x4x10;
	y11=y11-x3x11;
	y12=y12-x2x12;
				break;
				case 4:
	y4=y4*2;
	y2=y2-x2x12;
	y3=y3-x3x11;
	y5=y5-x5x9;
	y6=y6-x6x8;
	y7=y7-x7;
	y8=y8-x6x8;
	y9=y9-x5x9;
	y10=y10-x4x10;
	y11=y11-x3x11;
	y12=y12-x2x12;
				break;
				case 5:
	y5=y5*2;
	y2=y2-x2x12; 
	y3=y3-x3x11;
	y4=y4-x4x10;
	y6=y6-x6x8; 
	y7=y7-x7;
	y8=y8-x6x8; 
	y9=y9-x5x9;
	y10=y10-x4x10; 
	y11=y11-x3x11;
	y12=y12-x2x12;
				break;
				case 6:
	y6=y6*2;
	y2=y2-x2x12;
	y3=y3-x3x11;
	y4=y4-x4x10;
	y5=y5-x5x9;
	y7=y7-x7;
	y8=y8-x6x8;
	y9=y9-x5x9;
	y10=y10-x4x10;
	y11=y11-x3x11;
	y12=y12-x2x12;
				break;
				case 7: 
	y7=y7*2;
	y2=y2-x2x12;
	y3=y3-x3x11;
	y4=y4-x4x10;
	y5=y5-x5x9;
	y6=y6-x6x8;
	y8=y8-x6x8;
	y9=y9-x5x9;
	y10=y10-x4x10;
	y11=y11-x3x11; 
	y12=y12-x2x12; 
				break;
				case 8:
	y8=y8*2;
	y2=y2-x2x12;
	y3=y3-x3x11;
	y4=y4-x4x10;
	y5=y5-x5x9;
	y6=y6-x6x8;
	y7=y7-x7;
	y9=y9-x5x9;
	y10=y10-x4x10;
	y11=y11-x3x11;
	y12=y12-x2x12; 
				break;
				case 9: 
	y9=y9*2;
	y2=y2-x2x12;
	y3=y3-x3x11;
	y4=y4-x4x10;
	y5=y5-x5x9;
	y6=y6-x6x8;
	y7=y7-x7;
	y8=y8-x6x8;
	y10=y10-x4x10;
	y11=y11-x3x11;
	y12=y12-x2x12;
				break;
				case 10: 
	y10=y10*2;
	y2=y2-x2x12;
	y3=y3-x3x11;
	y4=y4-x4x10;
	y5=y5-x5x9;
	y6=y6-x6x8; 
	y7=y7-x7;
	y8=y8-x6x8;
	y9=y9-x5x9;
	y11=y11-x3x11;
	y12=y12-x2x12;
				break;
				case 11:
	y11=y11*2;
	y2=y2-x2x12;
	y3=y3-x3x11; 
	y4=y4-x4x10;
	y5=y5-x5x9;
	y6=y6-x6x8;
	y7=y7-x7;
	y8=y8-x6x8;
	y9=y9-x5x9;
	y10=y10-x4x10;
	y12=y12-x2x12;
				break;
				case 12:
	y12=y12*2;
	y2=y2-x2x12;
	y3=y3-x3x11;
	y4=y4-x4x10;
	y5=y5-x5x9;
	y6=y6-x6x8; 
	y7=y7-x7;
	y8=y8-x6x8;
	y9=y9-x5x9; 
	y10=y10-x4x10;
	y11=y11-x3x11;
				break;
				defaul: puts("blad"); 
	}
	
	p2=x2x12/y2;
	p3=x3x11/y3;
	p4=x4x10/y4;
	p5=x5x9/y5;
	p6=x6x8/y6;
	p7=x7/y7;
	p8=x6x8/y8;
	p9=x5x9/y9;
	p10=x4x10/y10;
	p11=x3x11/y11;
	p12=x2x12/y12;
	
		puts("prawdopodobienstwo wynosi");
		printf("2 %f \n",&p2);
		printf("3 %f \n",&p3);
		printf("4 %f \n",&p4);
		printf("4 %f \n" ,&p4);
		printf("5 %f \n",&p5);
		printf("6 %f \n",&p6);
		printf("7 %f \n",&p7);
		printf("8 %f \n",&p8);
		printf("9 %f \n",&p9);
		printf("10 %f \n",&p10);
		printf("11 %f \n",&p11);
		printf("12 %f \n",&p12);
	
	goto etykieta;
	return 0;}
```
0

Zacznij od napisania tego kodu zapomniawszy o tym, że istnieje coś takiego jak kopiuj & wklej oraz goto.

0

Kompiluje Ci się to?

0

Tak kompiluje się. Zero błędów i ostrzeżeń.

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