elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Ayuda con declaracion de memoria dinamica en funcion en: 26 Junio 2017, 00:32 am
Hola una duda como le doy memoria dinamica a un parametro en una funcion.
el parametro es una matriz.

mi duda es que valor colocar en la segunda llave de nota.
Código
  1. void imprimir(int cedula_valida[],float nota[][],int total);
  2. int main(){
  3. .
  4. .
  5. .
  6. .
  7. .
  8. printf("\n\nIngrese la cantidad de estudiantes de su clase:");
  9. scanf("%d",&total);
  10. nota=(float **)malloc (total*sizeof(float *));
  11. for(alumno=0;alumno<total;alumno++){
  12. nota[alumno]=(float *)malloc(alumno*sizeof(float));
  13. .
  14. .
  15. .
  16. .
  17. .
  18. }

gracias de antemano :D
2  Programación / Programación C/C++ / Ayuda en lenguaje c con funciones en: 20 Junio 2017, 17:23 pm
Buenas :D foro. estoy aprendiendo lenguaje c por mi cuenta y consegui una guia de ejercicios y me consegui este ejercicio.

Una tienda de mascotas desea un programa para guardar los nombre en un vector, la cantidad en otro y el valor en otro, además que imprima la relación de los animales,
la cantidad total, el costo de todos los animales y su valor promedio, que animal es más costoso y cual es más barato.

lo prosegui a hacer el codigo pero quiero que si se coloca un nombre que ya se introdujo entre en un while para que lo cambie, ademas que tengo que guardarlo por caracteristicas(anfibio,pez,etc).  Entonces tengo inconvenientes con el codigo de comparacion de nombres y no e pensado nada para lo de las caracteristicas.

Notese hasta hora se la biblioteca stdio.h y realloc y malloc de stdlib.h aqui el codigo:

Código
  1. /*Una tienda de mascotas desea un programa para guardar los nombre en un vector, la cantidad en otro y el valor en otro, además que imprima la relación de los animales,
  2. la cantidad total, el costo de todos los animales y su valor promedio, que animal es más costoso y cual es más barato.*/
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. char funcion_nombres(char nombres[],int contador);
  6. int main(){
  7. char nombres[100][20],*nombres_valido[100][30],*nombre_mas_caro[20],*nombre_mas_barato[20],decision;
  8. int *cantidad_animal=malloc(sizeof(int)*100);
  9. int *valor_animal=malloc(sizeof(int)*100);
  10. int total,costo_total,mas_caro=0,mas_barato=0,contador=0;
  11. char verificar_nombres;
  12. float promedio;
  13. char resp;
  14. int insecto=0,peces=0,anfibio=0,reptil=0,mamifero=0,ave=0;
  15. do{
  16. printf("\nIngrese el nombre del animal:");
  17. scanf("%s",&nombres[contador]);
  18. verificar_nombres=funcion_nombres(*nombres,contador);
  19. while(verificar_nombres=='i'){
  20. printf("\nLo siento animal ya registrado. Ingrese otro animal.\nIngrese el nombre del animal:");
  21. scanf("%s",&nombres[contador]);
  22. printf("\n%s",nombres[contador]);
  23. verificar_nombres=funcion_nombres(*nombres,contador);
  24. }
  25. *nombres_valido[contador]=nombres[contador];
  26. printf("\nCuantos animales hay?:");
  27. scanf("%d",&cantidad_animal[contador]);
  28. while(cantidad_animal[contador]<=0){
  29. printf("\nCantidad debe ser mayor a 0.\nCuantos animales hay?:");
  30. scanf("%d",&cantidad_animal[contador]);
  31. }
  32. printf("\nPrecio del animal:");
  33. scanf("%d",&valor_animal[contador]);
  34. while(valor_animal[contador]<0){
  35. printf("\nValor animal debe ser igual o mayor a 0.\nPrecio del animal:");
  36. scanf("%d",&valor_animal[contador]);
  37. }
  38. do{
  39. printf("\nTipo de animal:\n1.-Insecto\n2.-Pez\n3.-Anfibio\n4.-Reptil\n5.-Mamifero\n6.-Ave\nElige ahora:");
  40. scanf("%d",&decision);
  41. switch(decision){
  42. case 1:insecto++;
  43. break;
  44. case 2:peces++;
  45. break;
  46. case 3:anfibio++;
  47. break;
  48. case 4:reptil++;
  49. break;
  50. case 5:mamifero++;
  51. break;
  52. case 6:ave++;
  53. break;
  54. default:printf("El valor no es correcto\n");
  55. }
  56. }while(decision>6);
  57. total=+cantidad_animal[contador];
  58. costo_total=+valor_animal[contador];
  59. if(valor_animal[contador]>mas_caro){
  60. mas_caro=valor_animal[contador];
  61. *nombre_mas_caro=nombres[contador];
  62. }
  63. if(valor_animal[contador]<mas_barato){
  64. mas_barato=valor_animal[contador];
  65. *nombre_mas_barato=nombres[contador];
  66. }
  67. printf("\nDesea ingresar otro animal?(S/N):");
  68. fflush(stdin);
  69. scanf("%c",&resp);
  70. printf("\n%s",*nombres_valido[contador]);
  71. contador++;
  72. #ifdef WIN32
  73. system("cls");
  74. #endif
  75. #ifdef LINUX
  76. system("clear");
  77. #endif
  78.  
  79. }while(resp!='n'&&resp!='N');
  80. //procedimiento
  81. promedio=costo_total/contador;
  82. //realloc cantidad_animal
  83. cantidad_animal=(int *)realloc(cantidad_animal,total*sizeof(int));
  84. //realloc *valor_animal
  85. valor_animal=(int *)realloc(valor_animal,costo_total*sizeof(int));
  86. system("pause");
  87. return 0;
  88. }
  89.  
  90. char funcion_nombres(char nombres[],int contador){
  91. int vector;
  92. char resp;
  93. for(vector=0;vector<contador;vector++){
  94. if(nombres[contador]==nombres[vector]){
  95. resp='i';
  96. }
  97. else{
  98. resp='d';
  99. }
  100. }
  101. return(resp);
  102. }

Me pueden decir donde hay errores de syntaxis y que biblioteca podria incluir. de antemano gracias
3  Programación / Programación C/C++ / Ayuda errores en codigo en lenguaje c. en: 28 Mayo 2017, 02:13 am
Buenas tengo un error en mi codigo si coloco que n(valores) es igual 1 el promediob = a basura. ademas que los promedios no me dan.
al depurar me da que la suma incrementa el numero en 2 cuando no es asi. aqui el codigo
Código
  1. /*Cargar un vector de “n” posiciones con numero enteros, a partir de este crear 2 vectores; uno con los números pares y el otro con los numero impares,
  2. además decir cuál de los vectores es más grande y el promedio de los elementos en cada vector.*/
  3. #include <stdio.h>
  4. void crear(int numerosa[],int n);
  5. int main(){
  6. int vector,n;
  7. printf("Cargue 1 lista para crear 2 nuevas con los numeros pares e impares y decir cual vector es mas grande y el promedio de ambos.");
  8. printf("\nIngrese el numero de valores que desee cargar:");
  9. scanf("%d",&n);
  10. int numerosa[n];
  11. while(n<=0){
  12. printf("\nValor invalido. Ingrese de nuevo.\nIngrese el numero de valores que desee cargar:");
  13. scanf("%d",&n);
  14. int numerosa[n];
  15. }
  16. printf("\nLista 1.\n\n");
  17. for(vector=1;vector<=n;vector++){
  18. printf("Ingrese el valor %d:",vector);
  19. scanf("%d",&numerosa[vector]);
  20. }
  21. crear(numerosa,n);
  22. printf("\n\n");
  23. system("pause");
  24. return 0;
  25. }
  26. void crear(int numerosa[],int n){
  27. int vector,numerosb[n],numerosc[n],pares,impares,aux,y;
  28. float promedioa,promediob,promedioc,suma;
  29. char *mayor;
  30. promedioa=0;
  31. promediob=0;
  32. promedioc=0;
  33. aux=0;
  34. pares=0;
  35. impares=0;
  36. //crear 2 y 3
  37. for(vector=1;vector<=n;vector++){
  38. y=numerosa[vector]%2;
  39. if(y==0){
  40. pares++;
  41. numerosb[pares]=numerosa[vector];
  42. }
  43. else{
  44. impares++;
  45. numerosc[impares]=numerosa[vector];
  46. }
  47. }
  48. // mayor
  49. if(pares>impares){
  50. char p[]={'p','a','r'};
  51. mayor=p;
  52. }
  53. if(pares<impares){
  54. char i[]={'i','m','p','a','r'};
  55. mayor=i;
  56. }
  57. if(pares==impares){
  58. char ni[]={'n','i','n','g','u','n','a'};
  59. mayor=ni;
  60. }
  61. //el promedio vector a
  62. aux=0;
  63. for(vector=1;vector<=n;vector++){
  64. suma=numerosa[vector]+aux;
  65. aux=numerosa[vector];
  66. }
  67. promedioa=suma/n;
  68. //el promedio vector b
  69. if(pares>0){
  70. aux=0;
  71. for(vector=1;vector<=pares;vector++){
  72. suma=numerosb[vector]+aux;
  73. aux=numerosb[vector];
  74. }
  75. promediob=suma/pares;
  76. }
  77. //el promedio vector c
  78.  
  79. if(impares>0){
  80. aux=0;
  81. for(vector=1;vector<=impares;vector++){
  82. suma=numerosc[vector]+aux;
  83. aux=numerosc[vector];
  84. }
  85. promedioc=suma/impares;
  86. }
  87. //imprimir
  88. if(n>0){
  89. printf("\n\nLista 1\t\tLista 2\t\tLista 3");
  90. for(vector=1;vector<=n;vector++){
  91. if(vector<=pares&&vector<=impares){
  92. printf("\n%d\t\t%d\t\t%d",numerosa[vector],numerosb[vector],numerosc[vector]);
  93. }
  94. if(vector>pares&&vector<=impares){
  95. printf("\n%d\t\t\t\t%d",numerosa[vector],numerosc[vector]);
  96. }
  97. if(vector<=pares&&vector>impares){
  98. printf("\n%d\t\t%d\t\t\t",numerosa[vector],numerosb[vector]);
  99. }
  100. if(vector>pares&&vector>impares){
  101. printf("\n%d\t\t\t\t\t\t",numerosa[vector]);
  102. }
  103. }
  104. printf("\nPromedio.\n%.1f\t\t%.1f\t\t%.1f",promedioa,promediob,promedioc);
  105. if(*mayor=='p'||*mayor=='i'){
  106. printf("\n\nLa lista mas larga creada es la %s.",mayor);
  107. }
  108. else{
  109. printf("\n\nLa lista mas larga creada es %s.",mayor);
  110. }
  111. }
  112. }

De antemano muchas Gracias!. :D
4  Programación / Programación C/C++ / Ayuda en lenguaje c basico con funciones en: 17 Mayo 2017, 02:48 am
Buenas tengo un problemas no quiere entrar en los if`s. Ademas uso funciones porque lo piden en el anunciado de la guia. muchas gracias.
Código
  1. /*Hacer un programa en Lenguaje C que permita cargar dos vectores con cinco números enteros cada uno y determinar lo siguiente: ¿Cuál es el número mayor de los
  2.  dos vectores?*/
  3. #include<stdio.h>
  4. void mayor(int numerosa[2][4]);
  5. int main(){
  6. int vector,vectora,numeros[2][4];
  7. printf("Cargue 2 listas de 5 numeros para definir el mayor de cada uno.\n");
  8. for(vector=0;vector<2;vector++){
  9. printf("\n");
  10. for(vectora=0;vectora<5;vectora++){
  11. printf("Cargue el valor %d de la lista %d:",vectora+1,vector+1);
  12. scanf("%d",&numeros[vector][vectora]);
  13. }
  14. }
  15. mayor(numeros);
  16. printf("\n");
  17. system("pause");
  18. return 0;
  19. }
  20. void mayor(int numerosa[2][4]){
  21. int filas,columnas,mayora,mayorb;
  22. mayora=0;
  23. mayorb=0;
  24. for(filas=0;filas<2;filas++){
  25. for(columnas=0;columnas<5;columnas++){
  26. if(filas==0){
  27. if(numerosa[filas][columnas]>numerosa[filas][columnas]){
  28. mayora=numerosa[filas][columnas];
  29. }
  30. }
  31. if(filas==1){
  32. if(numerosa[filas][columnas]>numerosa[filas][columnas]){
  33. mayorb=numerosa[filas][columnas];
  34. }
  35. }
  36. }
  37. }
  38. printf("El valor mayor de la primera lista es=%d.\nEl valor mayor de la segunda lista es=%d.",mayora,mayorb);
  39. }
5  Programación / Programación C/C++ / Ayuda con ejercicio de arrays en: 8 Mayo 2017, 06:14 am
Código
  1. /*Hacer un programa en Lenguaje C que permita cargar un vector con 10 números enteros y determinar. ¿Cuantos y cuales números se repiten?*/
  2. #include<stdio.h>
  3. void repiten(int numero[]);
  4. int main(){
  5. int numeros[9],vector;
  6. printf("Carge 10 vectores para determinar cuantos y cuales se repiten.");
  7. for(vector=0;vector<10;vector++){
  8. printf("\nIngrese el Valor %d:",vector+1);
  9. scanf("%d",&numeros[vector]);
  10. }
  11. repiten(numeros);
  12. system("pause");
  13. return 0;
  14. }
  15. void repiten(int numero[]){
  16. int vector,vectori,repitientes[9],acumulador,acumuladortotal=0;
  17. for(vector=0;vector<10;vector++){
  18. acumulador=0;
  19. for(vectori=0;vectori<10;vector++){
  20. if(numero[vector]==numero[vectori]){
  21. acumulador+=1;
  22. if(acumulador>1){
  23. acumuladortotal+=1;
  24. repitientes[acumulador]=numero[vector];
  25. }
  26. }
  27. }
  28. }
  29. }

tengo problemas para imprimir cuales son los valores que se repiten. ayuda :C



· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines