Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mamuroti en 30 Enero 2017, 21:36 pm



Título: mostrar el codigo ASCII pero en pantalla
Publicado por: mamuroti en 30 Enero 2017, 21:36 pm
Hola como estan es mi primera vez que publico un codigo en este foro pero estoy desesperado no consigo en ningun lado una solucion. Bueno es solo una linea quiero saber como mostrar el codigo ASCII pero en pantalla cuando ingreso por ejemplo el "1" y me aparece una carita pero lo que quiero que vea el usuario es el numero 49.
gracias de ante mano
el programa tiene que ser en c

Código
  1. #include <stdio.h>
  2. #include<stdbool.h>
  3. bool continuar;
  4. int cont=0;
  5. int z,i,j,n,c=0,c1=0,c2=0,k,l,d,x,opcion,opcion1,c3=0,op,c4=0,c5=0;
  6. unsigned char a[100][100],ac[100][100];
  7. char q,m;
  8. float lectura(void);
  9.  
  10. int main() {
  11. float n;
  12. n=lectura();
  13.  
  14. return 0;
  15. }
  16.  
  17. float lectura(void)
  18. {
  19.  
  20. {
  21. int i;
  22. short decimal=0,centinela;
  23. char f[20];
  24. float potencia,n;
  25. do{
  26. potencia=1;
  27. n=0;
  28. centinela=0;
  29. printf("Introduzca el tamaxA5o de la matriz \n""Nota la matriz tiene que ser cuadrada "" \n");
  30. scanf("%s", &f);
  31. for(i=0;i<f[i];i++){
  32. if(f[i]!='.' && f[i]>47 && f[i]<57){
  33. potencia*=10;
  34. }
  35. else{
  36. break;
  37. }
  38. }
  39. for(i=0;i<f[i];i++){
  40. if(f[i]>47&&f[i]<57&&decimal==0){
  41. potencia/=10;
  42. n=((f[i]-48)*potencia)+n;
  43. }
  44. if(f[i]=='.'){
  45. decimal=1;
  46. potencia=0.1;
  47. }
  48. if(f[i]>47&&f[i]<57&&decimal!=0){
  49. n=((f[i]-48)*potencia)+n;
  50. potencia*=0.1;
  51. }
  52. if( (f[i]<47||f[i]>57) && f[i]!='.'){
  53. centinela=1;
  54. printf("\nError el dato \"%s\" no es un numero",f);
  55. printf("\n Por Favor Intente de Nuevo\n",f);
  56. break;
  57. }
  58. }
  59. }
  60. while(centinela!=0);
  61.  
  62. for(i=1;i<=n;i++)
  63. {
  64. for(j=1;j<=n;j++)
  65. {
  66. printf("Introduzca el numero en la posicion [%d,%d]=",i,j);
  67. scanf("%d", &a[i][j]);
  68.  
  69.  
  70. ac[i][j]=a[i][j];
  71. }
  72. }
  73. for(i=1;i<=n;i++)
  74. {//4
  75. for(j=1;j<=n;j++)
  76. {//5
  77.  
  78. for (j=1;j<=n;j++)
  79. {//6
  80. printf("| %d |",a[i][j]);
  81. }//6
  82. printf("\n");
  83. }//5
  84. }
  85.  
  86. for(i=1;i<=n;i++)
  87. {
  88. for(j=1;j<=n;j++)
  89. {
  90. z=a[i][j];
  91. c4=c4+z;
  92.  
  93. printf("El caracter %d tiene como codigo acII %c \n",z,z); // Aqui es el error
  94. }
  95. for(i=1;i<=n;i++)
  96. {
  97. for(j=1;j<=n;j++)
  98. {
  99. z=a[i][j];
  100. c=c+z;
  101. c5=c5+z;
  102. c1=c1+z;
  103. }
  104. printf("la sumatoria del codigo Asc II de la fila %c \n",c);
  105. printf("la sumatoria acumulada del codigo Asc II de la fila %c\n",c5);
  106. c=0;
  107. }
  108. c5=0;
  109. printf("La Sumatoria total del codigo Asc II de la matriz es %c\n",c1);
  110.  
  111. for(i=1;i<=n;i++)
  112. {
  113. for(j=1;j<=n;j++)
  114. {
  115. z=a[i][j];
  116. if(z%5==0)
  117. {
  118. printf("El caracter %c es  multiplo de 5 \n",a[i][j]);
  119.  
  120. }
  121.  
  122. if(z%2==0)
  123. {   printf("El caracter %c es par \n",a[i][j]);
  124.  
  125. }
  126. else
  127. {
  128. printf("El caracter %c es  impar \n",a[i][j]);
  129. }
  130. for(d=1;d<=z;d++)
  131. {
  132. if(a[i][j]%d==0)
  133. {
  134. x++;
  135. }
  136.        }
  137. if(x==2)
  138. {
  139. printf("El caracter %c es  primo \n",a[i][j]);
  140.  
  141. }
  142. else
  143. {
  144. printf("El caracter %c no es primo \n",a[i][j]);
  145. }
  146. x=0;
  147. }
  148. }
  149.  
  150.  
  151.  
  152.  
  153. printf("Introduzca el caracter a buscar \n");
  154.  scanf("%d", &q);
  155.  fflush( stdin );
  156.  
  157.  for(i=1;i<=n;i++)
  158. {
  159. for(j=1;j<=n;j++)
  160. {
  161. if(q==a[i][j])
  162. {
  163. printf("Se encuentra el caracter en la posicion [%d,%d] \n",i,j);
  164.  
  165. c2=c2+1;
  166. }
  167. }
  168. }
  169. printf("El numero esta un total de %d  veces \n",c2);
  170.  
  171. //5.ordenar de menor a mayor
  172. printf("Ordenar de Menor a mayor=1 \n");
  173. printf("Ordenar de Mayor a menor=2 \n");
  174. fflush(stdin);
  175. scanf("%d", &opcion);
  176. switch(opcion)
  177. {
  178.    case 1:
  179.        for(i=1;i<=n;i++)
  180.            {//1
  181.        for(j=1;j<=n;j++)
  182.            {//2
  183.            for(k=i+1;k<=n;k++)
  184.            {//3
  185.        for(l=j+1;l<=n;l++)
  186.        {//4
  187.        if(a[i][j]>a[k][l])
  188.        {//5
  189.    a[i][j]=a[k][l];
  190.    a[k][l]=ac[i][j];
  191.        }//5
  192.            }//4
  193.            }//3
  194.            }//2
  195.            }//1
  196.            for(i=1;i<=n;i++)
  197.            {//6
  198.        for(j=1;j<=n;j++)
  199.        {//7
  200.        printf("| %d |",a[i][j]);
  201.        }//7
  202.        printf("\n");
  203.            }//6
  204.            break;
  205. case 2:
  206. for(i=1;i<=n;i++)
  207.            {//1
  208.        for(j=1;j<=n;j++)
  209.            {//2
  210.            for(k=i+1;k<=n;k++)
  211.            {//3
  212.        for(l=j+1;l<=n;l++)
  213.        {//4
  214.        if(a[i][j]<a[k][l])
  215.        {//5
  216.    a[i][j]=a[k][l];
  217.    a[k][l]=ac[i][j];
  218.        }//5
  219.            }//4
  220.            }//3
  221.            }//2
  222.            }//1
  223.            for(i=1;i<=n;i++)
  224.            {//6
  225.        for(j=1;j<=n;j++)
  226.        {//7
  227.        printf("| %d |",a[i][j]);
  228.        }//7
  229.        printf("\n");
  230.            }//6
  231.            break;
  232.  
  233.  
  234. default:
  235. printf("Ha ingresado un numero no valido\n");
  236. break;
  237.  
  238. }
  239. }
  240.  
  241. printf("Los caracteres que conforman la diagonal principal son: \n");
  242.  
  243. for(i=1;i<=n;i++)
  244. {
  245. for(j=1;j<=n;j++)
  246. {
  247. if(i==j)
  248. {
  249. z=ac[i][j];
  250. c3=c3+z;
  251. m=z;
  252. printf("Codigo Asc II %d \n",m,z);
  253.  
  254.  
  255. }
  256.  
  257. }
  258. }
  259. printf("La sumatoria del codigo Asc II de la diagonal principal de la matriz es %d\n",c3);
  260.  
  261. c3=0;
  262. for ( i = 1; i <=n; i++)
  263. {
  264. for(j=1;j<=n;j++)
  265. {
  266. z = ac[i][j];
  267. if ((z>=48)&&(z<=57))
  268. {
  269. printf("El caracter %d es un numero en la posicion [%d,%d]\n",a[i][j]);
  270.  
  271. }
  272. }
  273. }
  274. printf("Deasea continuar con el programa si=1 o No=2 \n");
  275. scanf("%d",&op);
  276.  
  277. system("cls");
  278. c1=0;
  279.  
  280. while(op==1);
  281. return 0;
  282. }
  283.  

  



· Los códigos deben ir en etiquetas GeSHi
· Los títulos deben ser descptivos
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: Ayuda con este codigo de c
Publicado por: Kenji-chan en 30 Enero 2017, 22:07 pm
simplemente con imprimir el numero ingresado por el usuario es suficiente
Código:
printf("%c = %d",numerIngresado, numerIngresado);
y eso te imprime elcodigo ASCII y el numero respectivo


Título: Re: mostrar el codigo ASCII pero en pantalla
Publicado por: mamuroti en 30 Enero 2017, 23:03 pm
Me sigue dando el mismo error de mostrar las caritas


Título: Re: mostrar el codigo ASCII pero en pantalla
Publicado por: engel lex en 30 Enero 2017, 23:07 pm
Código:
printf("%c = %d",numerIngresado+'0', numerIngresado);

tu codigo es largo y complicado de leer... asumo que capturas ese numero ingresado como un "int" te muestra una caria, porque es el char en la posición 1... así que para "desplazarlo" hasta los numeros, le sumas el char de la posición 0 y eso hará el ajuste

si el numero ingresado es mayor a 9, esto dará simbolos, ya que no hay un ejemento tipo char para los numeros mayores a 9, en ese caso deberás hacerlo numero por numero