1. Си / Говнокод #23400

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    #include<stdio.h>
    #include<stdlib.h>	
    #include<string.h>	
    	int main(void){
    	void run_func(char *map[], char *fnt  , char *km , float *x ,  float *y , int line , int row , int lift    );
    				char *long_met[3][8] = {{"mile","0.621371"  ,  "yard","1093.61" , "fut","3280.84" , "duim","39370.1" } ,
    							{ "mile" ,"1.60934" , "yard","0.0009144" ,  "fut","0.0003048" ,  "duim","0.0000254"},
     			   				{"kilometer","1"  , "meter","1000"  ,   "stmeter","100000" ,   "mmeter","1000000" } }; 
    				char *amount[3][4] = { { "gallon" , "0.264172" ,       "quarta" , "1.05669"     } , 
    						{"gallon" , " 3.78541"  ,     "quarta" , "0.946353"   },
    						{"litr" , "1"  , "mililitr" , "1000"   }};
    				char *mass[3][8] = {   {"eng.tonna","0.984207"  ,  "amer.tonna","1.10231" , "stone","157.473" , "funt","2204.62" } ,
       						{ "eng.tonna" , "1.01605" , "amer.tonna", "0.907185" ,  "stone","0.00635029" ,  "funt","0.000453592"},
    						{"tonna","1" ,         "kilogram" , "1000"  , "miligram","100000"   , "microgram","1000000"  }}; 
    				char **cp;
    				char *buf_data;
    				char *fnt_sys;
    				char *mtr_sys;
    				char *word[100];
    	while(1){
    	int bg  = 0,convert_ch = 3,y = 0, d = 0, numb = 0;
      	float mn =0  , xm = 0 ;
    	printf("%s", "enter data for converter: ");
    		fgets( (char *) word, 99 ,stdin);
    		buf_data = strtok((char *) word, " ");
    		if( ! strcmp(buf_data, "funt.sys"   )     ){
    		convert_ch = 0;	
    		}
    		else	if( ! strcmp(buf_data, "metric.sys"    )     ){
    			convert_ch = 1;	
    		}
    		for( bg = 0 ;  buf_data != NULL;  buf_data = strtok(NULL, " ")  , bg++ ) {
    			switch(bg){
    				case 1:
    					if( !strcmp("long_met" , buf_data  )  ){
    			  			 y	=   sizeof(*long_met) / sizeof(long_met[0][0]); 
    	          	      	                 d	=   sizeof(long_met) /   sizeof(long_met[0][0]); 
    			  		        cp  = &long_met[convert_ch][0]  ;
    					}
    			   		else if(!strcmp("amount" , buf_data  ) ){
    			  			 y	= sizeof(*amount) /  sizeof(amount [0][0]); 
    		            	                 d	= sizeof(amount) /  sizeof(amount[0][0]); 
    				    	        cp = &amount[convert_ch][0] ;
    					}
    				 	else if(!strcmp("mass" , buf_data  ) ){
    				  		 y	= sizeof(*mass ) /  sizeof(mass[0][0]); 
    		         		         d	= sizeof(mass ) /  sizeof(mass[0][0]); 
    				 		 cp = &mass[convert_ch][0] ; 
    					}
    					break;
    				case 2:
    				fnt_sys = buf_data;
    					break;
    				case 3:
    				mtr_sys = buf_data;
    					break;
    				case 4:
    				numb =   atoi(buf_data);
    					break;
    			}
    		}
    		if( !y || !d || !cp || convert_ch == 3 || !numb ){
    	
    			puts("error");
    		}
    		else{
    			run_func( cp,   fnt_sys ,  mtr_sys , &mn ,  &xm , y  , d , convert_ch );
    			if( !mn || !xm  ){
    		puts("error");
    				} else{
    			printf("%f\n" , !convert_ch  ?    (mn  /  xm ) * numb :  (  mn  *  xm   ) * numb         );	
    			}
    		}
    	}
    	return 0;
    	}
    	void run_func(char *map[], char *fnt  , char *km , float *x ,  float *y , int line , int row  , int lift    ){
    		int m ;
    	if(  ( lift )   ){
    			row    -= line;	
    		}
    	for(  m = 0 ; m <= line   ; m++){
    		if(!strcmp(fnt,map[m])){
    			*x = atof(map[m  + 1] )  ;
    			break;
    			}
    		}
    	for( m =   (row  - line) ; m <=  row - 1  ; m++){
    		if( !strcmp( km   ,  map[m] ) ){
    			*y = atof(map[m  + 1 ] );
    			break;
    				}
    			}
    		}

    Запостил: gne4do, 11 Октября 2017

    Комментарии (0) RSS

    Добавить комментарий

    Ошибка компиляции комментария:
    1. Гости могут высказаться только во вторник, пятницу или субботу
    ava Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код