Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/06/2011, 18:11
Bladsmickey
 
Fecha de Ingreso: enero-2011
Mensajes: 33
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: ¿Problema C, Promedios y lista de alumnos?

Cita:
Iniciado por maperdel Ver Mensaje
La cuestion es que no creo que puedas inicializar los campos de una estructura como el campo promin y promax.
Efectivamente Amigo, Ese era el Problema, Gracias.

Aqui esta el Programa Terminado:


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <conio2.h>
  3. #include <windows.h>
  4. #define s scanf
  5.  
  6. struct datos{
  7. int n;
  8. char temp1[25];
  9. char temp2[25];
  10. char temp3[25];
  11. int temp4;
  12. char nombre[25][100];
  13. char cedula[25][100];
  14. char telefono[25][100];
  15. int edad[25];
  16. int nota[25];
  17. int temp5;
  18. int salon1;
  19. int salon2;
  20. int salon3;
  21. int salon4;
  22. float prom1;
  23. float prom2;
  24. float prom3;
  25. float prom4;
  26. int promin;
  27. int promax;
  28. int suma;
  29. char nombresalon1[25][100];
  30. char nombresalon2[25][100];
  31. char nombresalon3[25][100];
  32. char nombresalon4[25][100];
  33. char cedulasalon1[25][100];
  34. char cedulasalon2[25][100];
  35. char cedulasalon3[25][100];
  36. char cedulasalon4[25][100];
  37. char telefonosalon1[25][100];
  38. char telefonosalon2[25][100];
  39. char telefonosalon3[25][100];
  40. char telefonosalon4[25][100];
  41. int edadsalon1[25];
  42. int edadsalon2[25];
  43. int edadsalon3[25];
  44. int edadsalon4[25];
  45. int notasalon1[25];
  46. int notasalon2[25];
  47. int notasalon3[25];
  48. int notasalon4[25];
  49. char buscar[25];
  50. int global;
  51. float promedioglobal;
  52. }d;
  53.  
  54. void reordenar(){
  55. int i,j;
  56. for(i=0;i<d.salon1+d.salon2+d.salon3+d.salon4-1;i++){
  57. for(j=i+1 ; j<d.salon1+d.salon2+d.salon3+d.salon4 ; j++)
  58. if(strcmp(d.nombre[j],d.nombre[i]<0)){
  59. strcpy(d.temp1,d.nombre[j]);
  60. strcpy(d.nombre[j],d.nombre[i]);
  61. strcpy(d.nombre[i],d.temp1);
  62. strcpy(d.temp2,d.cedula[j]);
  63. strcpy(d.cedula[j],d.cedula[i]);
  64. strcpy(d.cedula[i],d.temp2);
  65. strcpy(d.temp3,d.telefono[j]);
  66. strcpy(d.telefono[j],d.telefono[i]);
  67. strcpy(d.telefono[i],d.temp3);
  68. d.temp4=d.edad[j];
  69. d.edad[j]=d.edad[i];
  70. d.edad[i]=d.temp4;
  71. d.temp5=d.nota[j];
  72. d.nota[j]=d.nota[i];
  73. d.nota[i]=d.temp5;}}}
  74.  
  75. void buscar(){
  76. int i;
  77. printf("Que Nombre, Telefono o Cedula Desea Buscar: \n");
  78. scanf("%s", &d.buscar);
  79. for(i=0 ; i<d.global ; i++){
  80. if(strcmp(d.buscar,d.nombre[i])==0 || strcmp(d.buscar,d.telefono[i])==0 || strcmp(d.buscar,d.cedula[i])==0){
  81. printf("Datos Encontrados!\n");
  82. printf("Organizando!\n");
  83. Sleep(2000);
  84. printf("Nombre: %s\nCedula: %s\nTelefono: %s\n Edad: %d\n", d.nombre[i],d.cedula[i],d.telefono[i],d.edad[i]);
  85. }}}
  86.  
  87. void menubuscar(){
  88.     int i,op2;
  89.     do{
  90. printf("---Seleccione Opcion----\n");
  91. printf("1. Mostar Lista Entera: \n");
  92. printf("2. Mostar Lista De la primera Seccion: \n");
  93. printf("3. Mostar Lista De la Segunda Seccion: \n");
  94. printf("4. Mostar Lista De la Tercera Seccion: \n");
  95. printf("5. Mostar Lista De la Cuarta Seccion: \n");
  96. printf("6. Salir");
  97. scanf("%d", &op2);
  98. switch(op2){
  99. case 1:{
  100. for(i=0 ; i<d.salon1+d.salon2+d.salon3+d.salon4 ; i++){
  101. printf("Nombre: %s\n Cedula: %s\n Telefono: %s\n Edad: %d\n Nota: %d \n---------------\n", d.nombre[i], d.cedula[i], d.telefono[i],d.edad[i],d.nota[i]);
  102. }}break;
  103. case 2:{
  104. for(i=0 ; i<d.salon1 ; i++){
  105. printf("Nombre: %s\n Cedula: %s\n Telefono: %s\n Edad: %d\n Nota: %d \n---------------\n",d.nombresalon1[i],d.cedulasalon1[i],d.telefonosalon1[i],d.edadsalon1[i],d.notasalon1[i]);
  106. }}break;
  107. case 3:{
  108. for(i=0 ; i<d.salon2 ; i++){
  109. printf("Nombre: %s\n Cedula: %s\n Telefono: %s\n Edad: %d\n Nota: %d \n---------------\n",d.nombresalon2[i],d.cedulasalon2[i],d.telefonosalon2[i],d.edadsalon2[i],d.notasalon2[i]);
  110. }}break;
  111. case 4:{
  112. for(i=0 ; i<d.salon3 ; i++){
  113. printf("Nombre: %s\n Cedula: %s\n Telefono: %s\n Edad: %d\n Nota: %d \n---------------\n",d.nombresalon3[i],d.cedulasalon3[i],d.telefonosalon3[i],d.edadsalon3[i],d.notasalon3[i]);
  114. }}break;
  115. case 5:{
  116. for(i=0 ; i<d.salon4 ; i++){
  117. printf("Nombre: %s\n Cedula: %s\n Telefono: %s\n Edad: %d\n Nota: %d \n---------------\n",d.nombresalon4[i],d.cedulasalon4[i],d.telefonosalon4[i],d.edadsalon4[i],d.notasalon4[i]);
  118. }}break;}}while(op2!=6);}
  119.  
  120. void menudecalificaciones(){
  121. int i,op3;
  122. do{
  123. printf("---Seleccione Opcion----\n");
  124. printf("1. Mostar Promedio Global: \n");
  125. printf("2. Mostar Promedio De la primera Seccion: \n");
  126. printf("3. Mostar Promedio De la Segunda Seccion: \n");
  127. printf("4. Mostar Promedio De la Tercera Seccion: \n");
  128. printf("5. Mostar Promedio De la Cuarta Seccion: \n");
  129. printf("6. Salir");
  130. scanf("%d", &op3);
  131. switch(op3){
  132. case 1:{
  133. d.promedioglobal=d.suma/d.global;
  134. printf("El Promedio es De: %.2f\n", d.promedioglobal);
  135. }break;
  136. case 2:{
  137. d.prom1=d.prom1/d.salon1;
  138. printf("El Promedio es De: %.2f\n", d.prom1);
  139. }break;
  140. case 3:{
  141. d.prom2=d.prom2/d.salon2;
  142. printf("El Promedio es De: %.2f\n", d.prom2);
  143. }break;
  144. case 4:{
  145. d.prom3=d.prom3/d.salon3;
  146. printf("El Promedio es De: %.2f\n", d.prom3);
  147. }break;
  148. case 5:{
  149. d.prom4=d.prom4/d.salon4;
  150. printf("El Promedio es De: %.2f\n", d.prom4);
  151. }break;}
  152.  
  153. }while(op3!=6);}
  154.  
  155. main(){
  156. int op,i;
  157. textcolor(RED);
  158. printf("Cuantos Salones hay: \n");
  159. s("%d", &d.n);
  160. printf("Cuantos Alumnos hay en la Primera Seccion: \n");
  161. s("%d", &d.salon1);
  162. for(i=0;i<d.salon1;i++){
  163. printf("Intruduzca Nombre: \n");
  164. s("%s", &d.nombre[i]);
  165. strcpy(d.nombresalon1[i],d.nombre[i]);
  166. printf("Introduzca Cedula: \n");
  167. s("%s", &d.cedula[i]);
  168. strcpy(d.cedulasalon1[i],d.cedula[i]);
  169. printf("Introduzca Telefono: \n");
  170. s("%s", &d.telefono[i]);
  171. strcpy(d.telefonosalon1[i], d.telefono[i]);
  172. printf("Introduzca Edad: \n");
  173. s("%d", &d.edad[i]);
  174. d.edadsalon1[i]=d.edad[i];
  175. printf("Introduzca Nota: \n\n");
  176. s("%d", &d.nota[i]);
  177. d.notasalon1[i]=d.nota[i];
  178. d.suma+=d.nota[i];
  179. d.prom1+=d.nota[i];
  180. if(d.nota[i]>d.promax){
  181. d.promax=d.nota[i];
  182. }
  183. if(d.nota[i]<d.promin){
  184. d.promin=d.nota[i];
  185. }}
  186.  
  187. printf("Cuantos Alumnos Hay en la Segunda Seccion: \n");
  188. s("%d", &d.salon2);
  189. for(i=0 ; i<d.salon2 ;i++){
  190. printf("Intruduzca Nombre: \n");
  191. s("%s", &d.nombre[i+d.salon1]);
  192. strcpy(d.nombresalon2[i],d.nombre[i+d.salon1]);
  193. printf("Introduzca Cedula: \n");
  194. s("%s", &d.cedula[i+d.salon1]);
  195. strcpy(d.cedulasalon2[i],d.cedula[i+d.salon1]);
  196. printf("Introduzca Telefono: \n");
  197. s("%s", &d.telefono[i+d.salon1]);
  198. strcpy(d.telefonosalon2[i], d.telefono[i+d.salon1]);
  199. printf("Introduzca Edad: \n");
  200. s("%d", &d.edad[i+d.salon1]);
  201. d.edadsalon2[i]=d.edad[i+d.salon1];
  202. printf("Introduzca Nota: \n\n");
  203. s("%d", &d.nota[i+d.salon1]);
  204. d.notasalon2[i]=d.nota[i+d.salon1];
  205. d.suma+=d.nota[i+d.salon1];
  206. d.prom2+=d.nota[i+d.salon1];
  207. if(d.nota[i+d.salon1]>d.promax){
  208. d.promax=d.nota[i];}
  209. if(d.nota[i+d.salon1]<d.promin){
  210. d.promin=d.nota[i+d.salon1];
  211. }
  212. }
  213.  
  214. printf("Cuantos Alumnos hay en la Tercera Seccion: \n");
  215. s("%d", &d.salon3);
  216. for(i=0;i<d.salon3;i++){
  217. printf("Intruduzca Nombre: \n");
  218. s("%s", &d.nombre[i+d.salon1+d.salon2]);
  219. strcpy(d.nombresalon3[i],d.nombre[i+d.salon1+d.salon2]);
  220. printf("Introduzca Cedula: \n");
  221. s("%s", &d.cedula[i+d.salon1+d.salon2]);
  222. strcpy(d.cedulasalon3[i],d.cedula[i+d.salon1+d.salon2]);
  223. printf("Introduzca Telefono: \n");
  224. s("%s", &d.telefono[i+d.salon1+d.salon2]);
  225. strcpy(d.telefonosalon3[i], d.telefono[i+d.salon1+d.salon2]);
  226. printf("Introduzca Edad: \n");
  227. s("%d", &d.edad[i+d.salon1+d.salon2]);
  228. d.edadsalon3[i]=d.edad[i+d.salon1+d.salon2];
  229. printf("Introduzca Nota: \n\n");
  230. s("%d", &d.nota[i+d.salon1+d.salon2]);
  231. d.notasalon3[i]=d.nota[i+d.salon1+d.salon2];
  232. d.suma+=d.nota[i+d.salon1+d.salon2];
  233. d.prom3+=d.nota[i+d.salon1+d.salon2];
  234. if(d.nota[i+d.salon1+d.salon2]>d.promax){
  235. d.promax=d.nota[i+d.salon1+d.salon2];}
  236. if(d.nota[i+d.salon1+d.salon2]<d.promin){
  237. d.promin=d.nota[i+d.salon1+d.salon2];
  238. }}
  239.  
  240. printf("Cuantos Alumnos hay en la Cuarta Seccion: \n");
  241. s("%d", &d.salon4);
  242. for(i=0;i<d.salon4;i++){
  243. printf("Intruduzca Nombre: \n");
  244. s("%s", &d.nombre[i+d.salon1+d.salon2+d.salon3]);
  245. strcpy(d.nombresalon4[i],d.nombre[i+d.salon1+d.salon2+d.salon3]);
  246. printf("Introduzca Cedula: \n");
  247. s("%s", &d.cedula[i+d.salon1+d.salon2+d.salon3]);
  248. strcpy(d.cedulasalon4[i],d.cedula[i+d.salon1+d.salon2+d.salon3]);
  249. printf("Introduzca Telefono: \n");
  250. s("%s", &d.telefono[i+d.salon1+d.salon2+d.salon3]);
  251. strcpy(d.telefonosalon4[i],d.telefono[i+d.salon1+d.salon2+d.salon3]);
  252. printf("Introduzca Edad: \n");
  253. s("%d", &d.edad[i+d.salon1+d.salon2+d.salon3]);
  254. d.edadsalon4[i]=d.edad[i+d.salon1+d.salon2+d.salon3];
  255. printf("Introduzca Nota: \n\n");
  256. s("%d", &d.nota[i+d.salon1+d.salon2+d.salon3]);
  257. d.notasalon4[i]=d.nota[i+d.salon1+d.salon2+d.salon3];
  258. d.suma+=d.nota[i+d.salon1+d.salon2+d.salon3];
  259. d.prom4+=d.nota[i+d.salon1+d.salon2+d.salon3];
  260. if(d.nota[i+d.salon1+d.salon2+d.salon3]>d.promax){
  261. d.promax=d.nota[i+d.salon1+d.salon2+d.salon3];}
  262. if(d.nota[i+d.salon1+d.salon2+d.salon3]<d.promin){
  263. d.promin=d.nota[i+d.salon1+d.salon2+d.salon3];
  264. }}
  265. d.global=d.salon1+d.salon2+d.salon3+d.salon4;
  266. do{
  267. printf("---Bienvenido Al Menu Administrativo-----\n\n");
  268. printf("Que desea Hacer: \n");
  269. printf("1. Menu Administrativo: \n");
  270. printf("2. Menu De Calificaciones: \n");
  271. printf("3. Busqueda de Personas: \n");
  272. printf("4. Salir.");
  273. scanf("%d", &op);
  274. printf("\n\n");
  275. switch(op){
  276. case 1:{
  277. menubuscar();
  278. }
  279. case 2:{
  280. menudecalificaciones();
  281. }
  282. case 3:{
  283. buscar();}
  284. }
  285. }while(op!=4);}