Advertisement
Guest User

Untitled

a guest
Nov 15th, 2024
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. #include <stdio.h>
  2. #define MAXN 20
  3.  
  4.  
  5. int readmarks(FILE* fin, int* id, float* mark);
  6. int changemarks(int* id,float*mark, int n, int studentid, float* addr_revisedmark);
  7. void writemarks(FILE* fin, int* id, float* mark, int n);
  8. int main(void){
  9.  
  10. FILE* fin = fopen("marksin.txt","r");
  11.  
  12. FILE* fout = fopen("marksout.txt","w");
  13.  
  14. if(fin==NULL){
  15. printf("The input file is missing!");
  16. return -1;
  17. }
  18.  
  19.  
  20. float revisedmark,mark[MAXN];
  21. int n = 0,studentid,id[MAXN],r; // initialize counter to zero
  22.  
  23. n = readmarks(fin, id, mark);
  24. printf("Would you like to enter a revised mark? If yes, enter a student id and the new mark. If no, enter a student id of 0.");
  25. //Once the arrays have been read, the main then prompts the user to enter a student ID and the revised mark
  26. printf("Enter student ID: ");
  27.  
  28. scanf("%d",studentid);
  29. if(studentid==0){
  30.  
  31.  
  32. }else{
  33. printf("Enter revised mark: ");
  34. scanf("%f",revisedmark);
  35. r=changemarks(id,mark,n,studentid,&revisedmark);
  36. if(r==0){
  37. printf("That student is not on the marks list.");
  38.  
  39. }
  40. printf("Enter student ID and revised mark: ");
  41. }
  42.  
  43.  
  44.  
  45. writemarks(fout, id, mark, n);
  46.  
  47.  
  48. fclose(fin);
  49. fclose(fout);
  50. return 0;
  51. }
  52.  
  53. int readmarks(FILE* fin, int* id, float* mark){
  54. int n;
  55. while (fscanf(fin, "%d%f", &id[n],&mark[n]) != EOF) {
  56. n++; // update n
  57. }
  58.  
  59.  
  60. return n;
  61. }
  62. int changemarks(int* id,float*mark, int n, int studentid, float* addr_revisedmark){
  63.  
  64.  
  65.  
  66. if(studentid==id[0]){
  67. mark[0]=*addr_revisedmark;
  68. return 1;
  69. }else if(studentid==id[1]){
  70. mark[1]=*addr_revisedmark;
  71. return 1;
  72. }else if(studentid==id[2]){
  73. mark[2]=*addr_revisedmark;
  74. return 1;
  75. }else if(studentid==id[3]){
  76. mark[3]=*addr_revisedmark;
  77. return 1;
  78. }else if(studentid==id[4]){
  79. mark[4]=*addr_revisedmark;
  80. return 1;
  81. }else if(studentid==id[5]){
  82. mark[5]=*addr_revisedmark;
  83. return 1;
  84. }else if(studentid==id[6]){
  85. mark[6]=*addr_revisedmark;
  86. return 1;
  87. }else if(studentid==id[7]){
  88. mark[7]=*addr_revisedmark;
  89. return 1;
  90. }else if(studentid==id[8]){
  91. mark[8]=*addr_revisedmark;
  92. return 1;
  93. }else if(studentid==id[9]){
  94. mark[9]=*addr_revisedmark;
  95. return 1;
  96. }else if(studentid==id[9]){
  97. mark[9]=*addr_revisedmark;
  98. return 1;
  99. }else if(studentid==id[9]){
  100. mark[9]=*addr_revisedmark;
  101. return 1;
  102. }else if(studentid==id[10]){
  103. mark[10]=*addr_revisedmark;
  104. return 1;
  105. }else if(studentid==id[11]){
  106. mark[11]=*addr_revisedmark;
  107. return 1;
  108. }else if(studentid==id[12]){
  109. mark[12]=*addr_revisedmark;
  110. return 1;
  111. }else if(studentid==id[13]){
  112. mark[13]=*addr_revisedmark;
  113. return 1;
  114. }else if(studentid==id[14]){
  115. mark[14]=*addr_revisedmark;
  116. return 1;
  117. }else if(studentid==id[15]){
  118. mark[15]=*addr_revisedmark;
  119. return 1;
  120. }else if(studentid==id[16]){
  121. mark[16]=*addr_revisedmark;
  122. return 1;
  123. }else if(studentid==id[17]){
  124. mark[17]=*addr_revisedmark;
  125. return 1;
  126. }else if(studentid==id[18]){
  127. mark[18]=*addr_revisedmark;
  128. return 1;
  129. }else if(studentid==id[19]){
  130. mark[19]=*addr_revisedmark;
  131. return 1;
  132. }else if(studentid==id[20]){
  133. mark[20]=*addr_revisedmark;
  134. return 1;
  135. }else{
  136. return 0;
  137. }
  138. }
  139.  
  140. void writemarks(FILE* fout, int* id, float* mark, int n){
  141. int i;
  142.  
  143. fprintf(fout,"There are %d marks.",n);
  144. for(i=0;i<n;i++){
  145. fprintf(fout,"%d %f",id[i],mark[i]);
  146. }
  147.  
  148. return;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement