Advertisement
Guest User

Q2

a guest
Aug 21st, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.52 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5. #include <math.h>
  6.  
  7. double gt (int n)
  8. {
  9. double giaithua = 1;
  10.  
  11. for( int i = 1; i <= n; i++)
  12. {
  13. giaithua=giaithua*i;
  14. }
  15. return giaithua;
  16.  
  17. }
  18.  
  19. double fa(double x, double c)
  20. {// write statements from here to compelete the function
  21. double s = 0,t;
  22. int i;
  23. while(1)
  24. { t = pow(x,2*i) / gt(2*i);
  25. if(t <= c) break;
  26. s = s + pow(-1,i)*t ;
  27. i++;
  28. }
  29. return(s); //This statement must be changed
  30. }
  31.  
  32. //note: int &n means that the variable n is passed to the function, not it's copy.
  33.  
  34. int findMax (int a[],int n)
  35. { int max=a[0];
  36. int i,imax;
  37. for ( i = 1 ; i < n; i++)
  38. if(a[i]> max) {max = a[i];imax=i;}
  39. return imax;
  40. }
  41.  
  42. int findMin (int a[],int n)
  43. { int min=a[0];
  44. int i,imin;
  45. for ( int i = 1 ; i < n; i++)
  46. if(a[i]< min){ min = a[i]; imin=i;}
  47. return imin;
  48. }
  49. void swap ( int &x, int &y)
  50. { int temp = x;
  51. x = y;
  52. y = temp;
  53. }
  54.  
  55. void removeAt( int i , int a[], int &n)
  56. { for( int j = i ; j< n-1 ; j++)
  57. a[j] = a[j+1];
  58. n--;
  59. }
  60.  
  61. void fb(int a[], int &n)
  62. {// write statements from here to compelete the function
  63. int imax,imin;
  64.  
  65. if(n % 2 !=0 ) {removeAt(0,a,n);removeAt(0,a,n);}
  66. else { imax = findMax(a,n);
  67. imin = findMin(a,n) ;
  68. swap(a[imax],a[imin]);}
  69. }
  70. //---------------------------------------------
  71. void removeAt (int i , char a[][50] , int &n)
  72. { for( int j = i; j <n-1; j++) strcpy(a[j],a[j+1]);
  73. n--;
  74. }
  75.  
  76. void split ( char s[] , char t[][50] , int &n)
  77. { int len = strlen(s);
  78. int i = 0;
  79. n = 0;
  80. while(i < len)
  81. { while ( i < len && s[i] == ' ') i++;
  82. int k = 0;
  83. char temp[50];
  84. while( i < len && s[i] != ' ')
  85. { temp[k] = s[i];
  86. k++;
  87. i++;
  88. }
  89. temp[k] ='\0';
  90. strcpy(t[n], temp);
  91. n++;
  92.  
  93. }
  94. }
  95.  
  96.  
  97. void unSplit( char t[][50],int n, char s[] )
  98. {
  99. int k = 0;
  100. for ( int i =0 ; i < n; i++)
  101. { int len = strlen(t[i]);
  102. for(int j =0 ; j < len; j++)
  103. { s[k] = t[i][j] ;
  104. k++;
  105. }
  106. s[k] = ' ' ;k++;
  107.  
  108. }
  109. s[k-1] = '\0';
  110. }
  111.  
  112. void removeLongest(char s[])
  113. { char t[20][50];
  114. int n,len=0;
  115. split(s,t,n);
  116. int imax = 0;
  117. // find imax
  118. for(int i=0;i<n;i++)if(len<strlen(t[i])){ imax=i; len=strlen(t[i]);
  119. }
  120. removeAt(imax,t,n);
  121. unSplit(t,n,s);
  122. }
  123. //here
  124. void fc(char s[])
  125. {// write statements from here to compelete the function
  126.  
  127. removeLongest(s);
  128.  
  129. }
  130. //and here
  131. void fd(char s[])
  132. {// write statements from here to compelete the function
  133. char t[20][50];
  134. int n;
  135. split(s,t,n);
  136. for(int i=1;i<n;i++)
  137. removeAt (i,t,n);
  138. unSplit(t,n,s);
  139.  
  140. }
  141.  
  142. //-------------------------------------------------------
  143. void display(int a[], int n) // do not edit this function
  144. {for(int i=0;i<n;i++) printf("%d ",a[i]);
  145. printf("\n");
  146. }
  147.  
  148. int main()
  149. {system("cls");
  150. int choice, i;
  151. int a[50]; int n;
  152. int b[] = {3,7,4,2,6}; // n = 5;
  153. int c[] = {3,9,4,9,2,6}; // n = 6;
  154. char s[100];
  155. while(1)
  156. {printf("\nTEST Q2 (2+2+1+1 = 6 marks):\n");
  157. printf("1. Test fa()\n");
  158. printf("2. Test fb()\n");
  159. printf("3. Test fc()\n");
  160. printf("4. Test fd()\n");
  161. printf("0. Exit\n");
  162.  
  163. printf("Enter your option (0 -> 4): ");
  164. scanf("%d",&choice);
  165. if(choice==0) return(0);
  166. //=====================================
  167.  
  168. switch(choice)
  169. {case 1: printf("Test fa():\n");
  170. printf("fa(1.5,0.00001) = %.4f\n",fa(1.5,0.00001));
  171. break;
  172.  
  173. case 2: printf("Test fb():\n");
  174. n = 5;
  175. printf("n is odd:\n");
  176. memcpy(a,b,n*sizeof(int));
  177. display(a,n);
  178. fb(a,n);
  179. display(a,n);
  180. n = 6;
  181. printf("n is even:\n");
  182. memcpy(a,c,n*sizeof(int));
  183. display(a,n);
  184. fb(a,n);
  185. display(a,n);
  186. break;
  187.  
  188. case 3: printf("Test fc():\n");
  189. strcpy(s,"The quick brown fox");
  190. printf("%s\n",s);
  191. fc(s);
  192. printf("%s\n",s);
  193. break;
  194.  
  195. case 4: printf("Test fd():\n");
  196. strcpy(s,"A09 A01 A08 A07");
  197. printf("%s\n",s);
  198. fd(s);
  199. printf("%s\n",s);
  200. break;
  201.  
  202. default:printf("Your selection is incorrect\n");
  203. break;
  204.  
  205. }
  206. }
  207. printf("\n");
  208. system ("pause");
  209. return(0);
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement