Guest User

Untitled

a guest
Dec 16th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.32 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. //void f1(int *,char *);
  4. //void f2(int *,char *);
  5. //int f3(int [5][4],int );
  6.  
  7. void f1(int *K,int *sumofkg, int *value);
  8. void f2(int *K,char *);
  9. void f3(int *K,int *value);
  10.  
  11. void f1(int *K,int *sumofkg, int *value){
  12. //int *choseX=&K[0];
  13. //int i,j;
  14. int i,j,numberX;
  15. //char *numberX=&name[0];
  16. printf("選取物件(1~5):");
  17. //scanf("%s",numberX);
  18. scanf("%d%*c",&numberX);
  19. //switch(*numberX){
  20. switch(numberX){
  21. //case'1':
  22. case 1:
  23. //if(sumofkg>46){
  24. if(*sumofkg>46){
  25. printf("拿不動了 😊 _ 😊");
  26. }
  27. else {
  28. //if(*(choseX+3)>0){
  29. // *(choseX+3)=*(choseX+3)-1;
  30. // sumofkg=sumofkg+4;
  31. //}
  32. //else if(*(choseX+3)==0){
  33. // printf("已經拿完拉\n");
  34. //}
  35. if(K[4*numberX+3]) {
  36. K[4*numberX+3]-=1;
  37. *sumofkg+=4;
  38. }
  39. else {
  40. printf("已經拿完拉\n");
  41. }
  42. }
  43. printf(" 物品 價值 重量(kg) 數目\n");
  44. //for(i=0;i<20;i++){
  45. // printf("%6d ",*(choseX+i));
  46. // //if(i==3||i==7||i==11||i==15||i==19){
  47. // if(i%4 == 3) {
  48. // printf("\n");
  49. // }
  50. //}
  51. for(i=0;i<5;i++) {
  52. for(j=0;j<4;j++) {
  53. printf("%6d ",K[4*i+j]);
  54. }
  55. printf("\n");
  56. }
  57. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  58. printf("選擇動作(1~4):");
  59. break;
  60. case'2':
  61. case 2:
  62. //if(sumofkg>45){
  63. if(*sumofkg>45){
  64. printf("拿不動了 😊 _ 😊");
  65. }
  66. else {
  67. //if(*(choseX+3)>0){
  68. // *(choseX+3)=*(choseX+3)-1;
  69. // sumofkg=sumofkg+4;
  70. //}
  71. //else if(*(choseX+3)==0){
  72. // printf("已經拿完拉\n");
  73. //}
  74. if(K[4*numberX+3]) {
  75. K[4*numberX+3]-=1;
  76. *sumofkg+=4;
  77. }
  78. else {
  79. printf("已經拿完拉\n");
  80. }
  81. }
  82. printf(" 物品 價值 重量(kg) 數目\n");
  83. //for(i=0;i<20;i++){
  84. // printf("%6d ",*(choseX+i));
  85. // //if(i==3||i==7||i==11||i==15||i==19){
  86. // if(i%4 == 3) {
  87. // printf("\n");
  88. // }
  89. //}
  90. for(i=0;i<5;i++) {
  91. for(j=0;j<4;j++) {
  92. printf("%6d ",K[4*i+j]);
  93. }
  94. printf("\n");
  95. }
  96. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  97. printf("選擇動作(1~4):");
  98. break;
  99. //case'3':
  100. case 3:
  101. //if(sumofkg>44){
  102. if(*sumofkg>44){
  103. printf("拿不動了 😊 _ 😊");
  104. }
  105. else {
  106. //if(*(choseX+3)>0){
  107. // *(choseX+3)=*(choseX+3)-1;
  108. // sumofkg=sumofkg+4;
  109. //}
  110. //else if(*(choseX+3)==0){
  111. // printf("已經拿完拉\n");
  112. //}
  113. if(K[4*numberX+3]) {
  114. K[4*numberX+3]-=1;
  115. *sumofkg+=4;
  116. }
  117. else {
  118. printf("已經拿完拉\n");
  119. }
  120. }
  121. printf(" 物品 價值 重量(kg) 數目\n");
  122. //for(i=0;i<20;i++){
  123. // printf("%6d ",*(choseX+i));
  124. // //if(i==3||i==7||i==11||i==15||i==19){
  125. // if(i%4 == 3) {
  126. // printf("\n");
  127. // }
  128. //}
  129. for(i=0;i<5;i++) {
  130. for(j=0;j<4;j++) {
  131. printf("%6d ",K[4*i+j]);
  132. }
  133. printf("\n");
  134. }
  135. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  136. printf("選擇動作(1~4):");
  137. break;
  138. //case'4':
  139. case 4:
  140. //if(sumofkg>43){
  141. if(*sumofkg>43){
  142. printf("拿不動了 😊 _ 😊");
  143. }
  144. else {
  145. //if(*(choseX+3)>0){
  146. // *(choseX+3)=*(choseX+3)-1;
  147. // sumofkg=sumofkg+4;
  148. //}
  149. //else if(*(choseX+3)==0){
  150. // printf("已經拿完拉\n");
  151. //}
  152. if(K[4*numberX+3]) {
  153. K[4*numberX+3]-=1;
  154. *sumofkg+=4;
  155. }
  156. else {
  157. printf("已經拿完拉\n");
  158. }
  159. }
  160. printf(" 物品 價值 重量(kg) 數目\n");
  161. //for(i=0;i<20;i++){
  162. // printf("%6d ",*(choseX+i));
  163. // //if(i==3||i==7||i==11||i==15||i==19){
  164. // if(i%4 == 3) {
  165. // printf("\n");
  166. // }
  167. //}
  168. for(i=0;i<5;i++) {
  169. for(j=0;j<4;j++) {
  170. printf("%6d ",K[4*i+j]);
  171. }
  172. printf("\n");
  173. }
  174. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  175. printf("選擇動作(1~4):");
  176. break;
  177. //case'5':
  178. case 5:
  179. //if(sumofkg>0){
  180. if(*sumofkg>0){
  181. printf("拿不動了 😊 _ 😊");
  182. }
  183. else {
  184. //if(*(choseX+3)>0){
  185. // *(choseX+3)=*(choseX+3)-1;
  186. // sumofkg=sumofkg+4;
  187. //}
  188. //else if(*(choseX+3)==0){
  189. // printf("已經拿完拉\n");
  190. //}
  191. if(K[4*numberX+3]) {
  192. K[4*numberX+3]-=1;
  193. *sumofkg+=4;
  194. }
  195. else {
  196. printf("已經拿完拉\n");
  197. }
  198. }
  199. printf(" 物品 價值 重量(kg) 數目\n");
  200. //for(i=0;i<20;i++){
  201. // printf("%6d ",*(choseX+i));
  202. // //if(i==3||i==7||i==11||i==15||i==19){
  203. // if(i%4 == 3) {
  204. // printf("\n");
  205. // }
  206. //}
  207. for(i=0;i<5;i++) {
  208. for(j=0;j<4;j++) {
  209. printf("%6d ",K[4*i+j]);
  210. }
  211. printf("\n");
  212. }
  213. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  214. printf("選擇動作(1~4):");
  215. }
  216. }
  217.  
  218. void f2(int *K,char *name){
  219. int *choseY=&K[0];
  220. int i,j;
  221. char *numberY=&name[0];
  222. printf("丟棄物件(1~5):");
  223. scanf("%s",numberY);
  224. switch(*numberY){
  225. case'1':
  226. if(*(choseY+3)==2){
  227. printf("背包沒有此物品拉\n");
  228. printf(" 物品 價值 重量(kg) 數目\n");
  229. for(i=0;i<20;i++){
  230. printf("%6d ",*(choseY+i));
  231. if(i==3||i==7||i==11||i==15||i==19){
  232. printf("\n");
  233. }
  234. }
  235. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  236. printf("選擇動作(1~4):");
  237. }
  238. else{
  239. *(choseY+3)=*(choseY+3)+1;
  240. printf(" 物品 價值 重量(kg) 數目\n");
  241. for(i=0;i<20;i++){
  242. printf("%6d ",*(choseY+i));
  243. if(i==3||i==7||i==11||i==15||i==19){
  244. printf("\n");
  245. }
  246. }
  247. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  248. printf("選擇動作(1~4):");
  249. }
  250. break;
  251. case'2':
  252. if(*(choseY+7)==4){
  253. printf("背包沒有此物品拉\n");
  254. printf(" 物品 價值 重量(kg) 數目\n");
  255. for(i=0;i<20;i++){
  256. printf("%6d ",*(choseY+i));
  257. if(i==3||i==7||i==11||i==15||i==19){
  258. printf("\n");
  259. }
  260. }
  261. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  262. printf("選擇動作(1~4):");
  263. }
  264. else{
  265. *(choseY+7)=*(choseY+7)+1;
  266. printf(" 物品 價值 重量(kg) 數目\n");
  267. for(i=0;i<20;i++){
  268. printf("%6d ",*(choseY+i));
  269. if(i==3||i==7||i==11||i==15||i==19){
  270. printf("\n");
  271. }
  272. }
  273. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  274. printf("選擇動作(1~4):");
  275. }
  276. break;
  277. case'3':
  278. if(*(choseY+11)==7){
  279. printf("背包沒有此物品拉\n");
  280. printf(" 物品 價值 重量(kg) 數目\n");
  281. for(i=0;i<20;i++){
  282. printf("%6d ",*(choseY+i));
  283. if(i==3||i==7||i==11||i==15||i==19){
  284. printf("\n");
  285. }
  286. }
  287. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  288. printf("選擇動作(1~4):");
  289. }
  290. else{
  291. *(choseY+11)=*(choseY+11)+1;
  292. printf(" 物品 價值 重量(kg) 數目\n");
  293. for(i=0;i<20;i++){
  294. printf("%6d ",*(choseY+i));
  295. if(i==3||i==7||i==11||i==15||i==19){
  296. printf("\n");
  297. }
  298. }
  299. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  300. printf("選擇動作(1~4):");
  301. }
  302. break;
  303. case'4':
  304. if(*(choseY+15)==1){
  305. printf("背包沒有此物品拉\n");
  306. printf(" 物品 價值 重量(kg) 數目\n");
  307. for(i=0;i<20;i++){
  308. printf("%6d ",*(choseY+i));
  309. if(i==3||i==7||i==11||i==15||i==19){
  310. printf("\n");
  311. }
  312. }
  313. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  314. printf("選擇動作(1~4):");
  315. }
  316. else{
  317. *(choseY+15)=*(choseY+15)+1;
  318. printf(" 物品 價值 重量(kg) 數目\n");
  319. for(i=0;i<20;i++){
  320. printf("%6d ",*(choseY+i));
  321. if(i==3||i==7||i==11||i==15||i==19){
  322. printf("\n");
  323. }
  324. }
  325. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  326. printf("選擇動作(1~4):");
  327. }
  328. break;
  329. case'5':
  330. if(*(choseY+19)==2){
  331. printf("背包沒有此物品拉\n");
  332. printf(" 物品 價值 重量(kg) 數目\n");
  333. for(i=0;i<20;i++){
  334. printf("%6d ",*(choseY+i));
  335. if(i==3||i==7||i==11||i==15||i==19){
  336. printf("\n");
  337. }
  338. }
  339. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  340. printf("選擇動作(1~4):");
  341. }
  342. else{
  343. *(choseY+19)=*(choseY+19)+1;
  344. printf(" 物品 價值 重量(kg) 數目\n");
  345. for(i=0;i<20;i++){
  346. printf("%6d ",*(choseY+i));
  347. if(i==3||i==7||i==11||i==15||i==19){
  348. printf("\n");
  349. }
  350. }
  351. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  352. printf("選擇動作(1~4):");
  353. }
  354. }
  355. }
  356.  
  357. //int f3(int K[5][4],int value){
  358. void f3(int *K,int *value){
  359. //int clone[5][4];
  360. int clone[20];
  361. int i,j,kg;
  362. for(i=0;i<5;i++){
  363. for(j=0;j<4;j++){
  364. //clone[i][j]=K[i][j];
  365. clone[4*i+j]=K[4*i+j];
  366. }
  367. }
  368. //clone[0][3]=2-clone[0][3];
  369. //clone[1][3]=4-clone[1][3];
  370. //clone[2][3]=7-clone[2][3];
  371. //clone[3][3]=1-clone[3][3];
  372. //clone[4][3]=2-clone[4][3];
  373. clone[4*0+3]=2-clone[4*0+3];
  374. clone[4*1+3]=4-clone[4*1+3];
  375. clone[4*2+3]=7-clone[4*2+3];
  376. clone[4*3+3]=1-clone[4*3+3];
  377. clone[4*4+3]=2-clone[4*4+3];
  378. printf("背包中的物件:\n");
  379. printf(" 物品 價值 重量(kg) 數目\n");
  380. for(i=0;i<5;i++){
  381. for(j=0;j<4;j++){
  382. //printf("%6d ",clone[i][j]);
  383. printf("%6d ",clone[4*i+j]);
  384. }
  385. printf("\n");
  386. }
  387. //kg=clone[0][3]*4+clone[1][3]*5+clone[2][3]*6+clone[3][3]*7+clone[4][3]*50;
  388. //value=clone[0][3]*180+clone[1][3]*130+clone[2][3]*200+clone[3][3]*240+clone[4][3]*1000;
  389. kg=clone[4*0+3]*4+clone[4*1+3]*5+clone[4*2+3]*6+clone[4*3+3]*7+clone[4*4+3]*50;
  390. *value=clone[4*0+3]*180+clone[4*1+3]*130+clone[4*2+3]*200+clone[4*3+3]*240+clone[4*4+3]*1000;
  391. printf("總重量:%d\n",kg);
  392. //printf("總價值:%d\n",value);
  393. printf("總價值:%d\n",*value);
  394. printf(" 物品 價值 重量(kg) 數目\n");
  395. for(i=0;i<5;i++){
  396. for(j=0;j<4;j++){
  397. //printf("%6d ",K[i][j]);
  398. printf("%6d ",K[4*i+j]);
  399. }
  400. printf("\n");
  401. }
  402. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  403. printf("選擇動作(1~4):");
  404. //return value;
  405. }
  406.  
  407. int main(){
  408. //int K[5][4]={1,180,4,2,2,130,5,4,3,200,6,7,4,240,7,1,5,1000,50,2};
  409. int K[20]={1,180,4,2,2,130,5,4,3,200,6,7,4,240,7,1,5,1000,50,2};
  410. //int i,j,value;
  411. int i,j,value=0,sumofkg=0;
  412. int mode=0;
  413. char name[5]={'1','2','3','4','5'};
  414. printf(" 物品 價值 重量(kg) 數目\n");
  415. //for(i=0;i<5;i++){
  416. // for(j=0;j<4;j++){
  417. // printf("%6d ",K[i][j]);
  418. // }
  419. // printf("\n");
  420. //}
  421. for(i=0;i<5;i++){
  422. for(j=0;j<4;j++){
  423. printf("%6d ",K[4*i+j]);
  424. }
  425. printf("\n");
  426. }
  427. printf("'1'=>拿取物品 '2'=>放回物品 '3'=>查看背包 '4'=>偷完閃人\n");
  428. printf("選擇動作(1~4):");
  429. while(scanf("%d%*c",&mode)!=EOF){
  430. switch(mode){
  431. case 1:
  432. //f1(&K,&name);
  433. f1(K,&sumofkg,&value);
  434. break;
  435. case 2:
  436. f2(&K,&name);
  437. break;
  438. case 3:
  439. //f3(&K,value);
  440. f3(K,&value);
  441. break;
  442. case 4:
  443. //printf("總價值:%d",f3(&K,value));
  444. printf("總價值:%d",value);
  445. }
  446. }
  447. }
Add Comment
Please, Sign In to add comment