Ver las NORMAS de estos Foros Web ZackYFileS Chat ZackYFileS Agregar a Favoritos Contactar con Administrador
 
 

TU PUBLICIDAD AQUÍ!!
Navegación
Retroceder   Foros ZackYFileS >
OTROS TEMAS DE INTERES - INTERNET:
> PROGRAMACIÓN Lenguajes: Visual Basic, C++, etc
Nombre de usuario
Contraseña
Configuración de UsuarioAyuda (FAQs)Nuevos PostsBuscar


Respuesta
 
Herramientas
Antiguo 20/12/2005, 16:15   #1
TonYJauSS
Usuario Registrado
 
Fecha de ingreso: 20/dic/2005
Mensajes: 12
TonYJauSS está en el buen camino
Unhappy Programa en C conversor decimal <->Ascii

Hola gente,estoy empezando en esto del C y ya tengo mis primeros fallos para empezar jejeje,quiero hacer un programa que me lea por teclado una serie de numeros y me escriba el codigo ascii de esos numeros cuando lea un 0 ,no se que falla este codigo,compila pero no sirve .Salu2
Cita:
#include <stdio.h>
main(){
int i,numeros[10];

for(i=0;i<10;i++){
numeros[i]=0;
scanf("%i",&numeros[i]);
if(numeros[i]=0){
for(i=0;i=10;i++)

printf(" letra %c\n",numeros[i]);
}}}
TonYJauSS está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Antiguo 20/12/2005, 17:47   #2
kolmo7 
Usuario PREMIUM+
 
Avatar de kolmo7
 
Fecha de ingreso: 31/mar/2004
Mensajes: 20.819
kolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatar
Cita:
Iniciado por TonYJauSS
Hola gente,estoy empezando en esto del C y ya tengo mis primeros fallos para empezar jejeje,quiero hacer un programa que me lea por teclado una serie de numeros y me escriba el codigo ascii de esos numeros cuando lea un 0 ,no se que falla este codigo,compila pero no sirve .Salu2
Código:
#include <stdio.h>
main(){
int i,numeros[10];

for(i=0;i<10;i++){
  numeros[i]=0;
  scanf("%i",&numeros[i]);
  if(numeros[i]=0){
    for(i=0;i=10;i++)
      printf(" letra %c\n",numeros[i]);
    }
  }
}

No me entero bien de lo que tiene que hacer el programa, pero el tuyo hace esto:

Usa la librería stdio.h
Considera un número entero y un vector de 10 números enteros
Comienza un bucle de 0 a 10 incrementando el contador de uno en uno para hacer:

1.asignar 0 en la posición del vector que nos diga el contador

2.leer un número y asignarlo en la posición del vector que nos diga el contador (es decir, en donde acabamos de poner un cero)

3.y si ese valor asignado es un cero...me parece que se hace un lío o pasa algo raro porque vuelves a usar el mismo contador para iniciar otro bucle...seguro que se hace la picha un lío...
__________________
Un saludo.

kolmo7.


[I][B](Socio Nº 10)[/B][/I]
kolmo7 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 20/12/2005, 19:10   #3
TonYJauSS
Usuario Registrado
 
Fecha de ingreso: 20/dic/2005
Mensajes: 12
TonYJauSS está en el buen camino
Tiene que leer numeros por teclado,y en cuanto metas un 0 que te escriba el codigo ascii de los que has metido.El primer bucle for es para inicializar a 0 el vector e ir metiendo en el valores por teclado,el 2º for viene metido dentro del if,si en el vector se ha metido algun 0 quiero que me escriba todos los numeros,por eso hago un for para que desde i =0 hasta i = 10 me escriba el ascii de todos los numeros.Perdonarme por no explicarme bien,pero es que soy muy novato .Salu2
TonYJauSS está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 20/12/2005, 19:55   #4
kolmo7 
Usuario PREMIUM+
 
Avatar de kolmo7
 
Fecha de ingreso: 31/mar/2004
Mensajes: 20.819
kolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatar
¿Pero si ha metido algún 0 dentro de los diez o en cuanto meta un cero paras de introducir números y muestras en pantalla los que se han introducido hasta entonces?

Si es la primera posibilidad, el programa debería preguntar por los diez números y en otro bucle (fuera del que se usa para pedir números) hacer la comprobación del cero.

Si es la segunda posibilidad entonces podrías hacerlo como lo tienes pero sin escribir necesariamente los diez números (es lo que estas diciendo en el segundo for: for(i=0;i=10;i++) ). Es decir, si en el segundo número meto un cero el programa lo que hace es mostrar en pantalla el primer número, luego el cero y después intenta escribir los siguientes...pero el vector no tiene ningún valor en esas posiciones...

Otra cosa: ¿tiene que ser con for o puedes usar también while?
__________________
Un saludo.

kolmo7.


[I][B](Socio Nº 10)[/B][/I]
kolmo7 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 20/12/2005, 20:41   #5
TonYJauSS
Usuario Registrado
 
Fecha de ingreso: 20/dic/2005
Mensajes: 12
TonYJauSS está en el buen camino
Gracias kolmo7 por tu ayuda,es la 2ª opción la que tengo que hacer,cuando se reciba un 0 se escribirá todos los numeros en ascii anteriormente leidos,es verdad que ese for me escribe siempre desde i=0 hasta i =10,pero algo falla aparte,porque aunque meta los 10 números no me escribe nada cuando uno es 0,no se si el if falla o que,voy a probar con el while(scanf numeros mientras el ultimo no sea 0,) no se si lo solucionará
...Salu2 y gracias
TonYJauSS está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 20/12/2005, 20:51   #6
kolmo7 
Usuario PREMIUM+
 
Avatar de kolmo7
 
Fecha de ingreso: 31/mar/2004
Mensajes: 20.819
kolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatar
¿Con esto que quieres decir: scanf("%i",&numeros[i]) ?

No recuerdo las cosas de C y no se qué hace eso. La idea es coger un número desde el teclado, pero ¿cómo se usaba el scanf? ¿Qué significa ese %i ? ¿No será otra cosa?

Más: Después de que resuelvas el tema ese de mostrar los números que has ido introduciendo, tendrás que resolver otro problema que no veo: ¿cómo pasas el número a su código ascii? ¿Con esto: printf(" letra %c\n",numeros[i])? ¿Seguro?
__________________
Un saludo.

kolmo7.


[I][B](Socio Nº 10)[/B][/I]

Última edición por kolmo7; 20/12/2005 a las 20:55.
kolmo7 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 20/12/2005, 20:55   #7
kolmo7 
Usuario PREMIUM+
 
Avatar de kolmo7
 
Fecha de ingreso: 31/mar/2004
Mensajes: 20.819
kolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatar
__________________
Un saludo.

kolmo7.


[I][B](Socio Nº 10)[/B][/I]
kolmo7 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 21/12/2005, 01:05   #8
Efirenet
Usuario Activo
 
Avatar de Efirenet
 
Fecha de ingreso: 06/dic/2004
Mensajes: 84
Efirenet llegará a ser famoso muy pronto
Hola,

a ver, vayamos por pasos. La teoría es: [I]Escribir números por pantalla y tras pulsar el número 0, imprimir el valor ASCII de todos los números previamente escritos.[/I] ¿Ok?
Bueno, pues vamos a echarle un vistazo a tu propuesta:

[PHP]
#include <stdio.h>
main(){
int i,numeros[10];

for(i=0;i<10;i++){
numeros[i]=0;
scanf("%i",&numeros[i]);
if(numeros[i]=0){
for(i=0;i=10;i++)
printf(" letra %c\n",numeros[i]);
}
}
}
[/PHP]

Todo se está haciendo muy bien, hasta el If. Veamos por qué:
¿Como funciona un If en C++? Si el resultado de la expresión del If es = 0, entonces no se entra. Si es <> 0, sí. En éste caso, estás haciendo lo siguiente:

[PHP]
if(numeros[i]=0){
[/PHP]

No estás haciendo una comparación de si numeros[i] es 0; estás asignando a numeros[i] el valor cero. Entonces, el resultado de esa expresión es siempre 0 y no se entra en el If.
Lo que realmente querías hacer es esto:

[PHP]
if(numeros[i]==0){
[/PHP]

Observa que con el == hacemos una comparación y con el = se hace una asignación.

Siguiente punto: Como bien dice el compañero kolmo7, en el siguiente For estás usando el mismo contador que en el for de fuera, luego ahí estás haciendo la picha un lío al programa. Además, estás usando como condición de funcionamiento del bucle que i=10, luego ahí se te va a meter en un bucle infinito (i=10 da un valor distinto de cero, luego no habría nunca una condición de parada). Lo peor de todo es que en ese segundo bucle, estás "tocando" el valor de i, con lo que al volver al primero la i tendrá otro valor y no sale lo que realmente tú querías.

Yo que tú usaría otro contador para el segundo For .
Por último, probablemente, querrás salir del programa tras mostrar los códigos ASCII de lo tecleado, así que te sugiero una instrucción break cuando termines el for ese que tienes anidado (una instrucción break te saca del For en el que te encuentras).

En resumen, que yo lo haría de ésta manera:

[PHP]
#include <stdio.h>
main(){
int cont1, cont2;
int numeros[10];
for(cont1=0;cont1<10;cont1++){
numeros[cont1]=0;
scanf("%i", &numeros[cont1]);
if(numeros[cont1]==0){
for(cont2=0;cont2<10;cont2++)
printf(" letra %c\n",numeros[cont2]);
break;
}
}
}
[/PHP]

Nota: He puesto cont1 y cont2 a los contadores de los bucles, ya que son nombres más descriptivos que una simple i.

Un saludo y felices fiestas
Efirenet está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 21/12/2005, 19:43   #9
kolmo7 
Usuario PREMIUM+
 
Avatar de kolmo7
 
Fecha de ingreso: 31/mar/2004
Mensajes: 20.819
kolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatar
Cita:
if(numeros[i]=0)
Se me escapó...
Cita:
scanf("%i", &numeros[cont1])
Me sigo haciendo la misma pregunta: ¿se pone %i o %d?

Y: ¿cómo pasas el número a su código ascii?
__________________
Un saludo.

kolmo7.


[I][B](Socio Nº 10)[/B][/I]

Última edición por kolmo7; 21/12/2005 a las 19:48.
kolmo7 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 21/12/2005, 22:08   #10
Efirenet
Usuario Activo
 
Avatar de Efirenet
 
Fecha de ingreso: 06/dic/2004
Mensajes: 84
Efirenet llegará a ser famoso muy pronto
[QUOTE=kolmo7]
Me sigo haciendo la misma pregunta: ¿se pone %i o %d?
[/QUOTE]

Hola, en éste caso da igual.
[LIST]
[*]%d: Conversión a enteros decimas
[*]%i: Conversión a entos
[/LIST]
Si te sirve de consuelo, yo siempre uso %d (nunca he visto mucha diferencia entre ambos).
[QUOTE=kolmo7]
Y: ¿cómo pasas el número a su código ascii?
[/QUOTE]

Muy sencillo. En el printf ponemos %c. El %c espera un número para sustituirlo por su carácter ASCII. A lo mejor a tí te confunde que no le estamos pasando una variable de tipo char, pero recuerda que el tipo char en C no es un caracter propiamente dicho, sino un número de 0 a 255. En éste caso, le estamos pasando un número y él interpretará ese número y con el %c pondrá su valor ASCII.

Un saludo y felices fiestas
Efirenet está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 21/12/2005, 23:03   #11
kolmo7 
Usuario PREMIUM+
 
Avatar de kolmo7
 
Fecha de ingreso: 31/mar/2004
Mensajes: 20.819
kolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatar
Ok, gracias Efirenet

Mis conocimientos de C se van perdiendo en la penumbra por la falta de costumbre
__________________
Un saludo.

kolmo7.


[I][B](Socio Nº 10)[/B][/I]
kolmo7 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 22/12/2005, 00:40   #12
TonYJauSS
Usuario Registrado
 
Fecha de ingreso: 20/dic/2005
Mensajes: 12
TonYJauSS está en el buen camino
Muchas gracias a los 2,el código que pasteó Efirenet funcionaba,pero me escribía siempre 10 veces la letra aunque el 4º número fuera un 0,lo arreglé metiendo una variable que me indicara cuantas veces habia usado el bucle de lectura para luego usarla en la escritura.Ahora me falta arreglar el porque siempre me escribe letra aunque el primer número sea un 0.Gracias y salu2

[PHP]$ vi programa1.c
#include <stdio.h>
main(){
int cont1,cont2,cont3;
int numeros[10];
cont3=0;
for(cont1=0;cont1<10;cont1++){
numeros[cont1]=0;
scanf("%i",&numeros[cont1]);
cont3++;
if (numeros[cont1]==0){
for(cont2=0;cont2<cont3;cont2++)
printf("letra %c\n",numeros[cont2]);

}
}
}[/PHP]
TonYJauSS está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 22/12/2005, 11:25   #13
Efirenet
Usuario Activo
 
Avatar de Efirenet
 
Fecha de ingreso: 06/dic/2004
Mensajes: 84
Efirenet llegará a ser famoso muy pronto
Hola, yo que tú le daba una vueltita de tuerca más al asunto. Yo quitaría la nueva variable que pusiste (cont3) y todo lo que tiene asociado, y en el For pondría como condición que cont2 < cont1. Es decir, un código tal que así:

[PHP]
#include <stdio.h>
main(){
int cont1,cont2;
int numeros[10];
for(cont1=0;cont1<10;cont1++){
numeros[cont1]=0;
scanf("%i",&numeros[cont1]);
if (numeros[cont1]==0){
for(cont2=0;cont2<cont1;cont2++)
printf("letra %c\n",numeros[cont2]);
break;
}
}
}
[/PHP]

De esta manera, cuando entre en el segundo for, el cont2 caminará hasta justo antes donde se encuentre cont1 (cont1 apuntará a la casilla del array que contiene el 0).
Por cierto, le he puesto el break para que se vaya al imprimir la respuesta.

Un saludo y felices fiestas
Efirenet está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 22/12/2005, 11:33   #14
kolmo7 
Usuario PREMIUM+
 
Avatar de kolmo7
 
Fecha de ingreso: 31/mar/2004
Mensajes: 20.819
kolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatar
Para no usar el break yo pondría un while en lugar de un for al principio. Así cualquiera que coja el código sabe qué condición o condiciones hace que se detenga el bucle.
__________________
Un saludo.

kolmo7.


[I][B](Socio Nº 10)[/B][/I]
kolmo7 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 24/12/2005, 00:54   #15
TonYJauSS
Usuario Registrado
 
Fecha de ingreso: 20/dic/2005
Mensajes: 12
TonYJauSS está en el buen camino
Muchas gracias a los 2,funciona de vicio .Salu2
TonYJauSS está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/01/2006, 21:32   #16
T4d3o
Usuario Activo
 
Fecha de ingreso: 14/abr/2004
Mensajes: 59
T4d3o es como un diamante en brutoT4d3o es como un diamante en brutoT4d3o es como un diamante en bruto
[QUOTE=kolmo7]Para no usar el break yo pondría un while en lugar de un for al principio. Así cualquiera que coja el código sabe qué condición o condiciones hace que se detenga el bucle.[/QUOTE]

Es que usar ahi un break es saltarse a la torera toda la metodologia de la programacion.

Cuando un bucle se ejecuta un numero de veces determinado se usa for, si el numero varia se debe usar while.

Por otro lado el segundo for no deberia ser anidado, sino ejecutado despues del while.
__________________
T4d3o está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 03/01/2006, 12:18   #17
Efirenet
Usuario Activo
 
Avatar de Efirenet
 
Fecha de ingreso: 06/dic/2004
Mensajes: 84
Efirenet llegará a ser famoso muy pronto
Cita:
Iniciado por T4d3o
Es que usar ahi un break es saltarse a la torera toda la metodologia de la programacion.

Cuando un bucle se ejecuta un numero de veces determinado se usa for, si el numero varia se debe usar while.

Por otro lado el segundo for no deberia ser anidado, sino ejecutado despues del while.
Hola, tienes toda la razón. Yo lo que pretendía era echar a andar el ejemplo que puso TonYJauSS, haciendo la mínima cantidad de cambios posibles.

Desde luego, yo esto lo haría de otra forma totalmente distinta, pero ya te digo que mi idea era sólo echar a andar ese ejemplo sin "tocarlo" demasiado.

Un saludo y feliz año a todos.
Efirenet está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 12/01/2006, 15:19   #18
TonYJauSS
Usuario Registrado
 
Fecha de ingreso: 20/dic/2005
Mensajes: 12
TonYJauSS está en el buen camino
Hola gente,pues vuelvo con ese programa retocado jeje,lo que quiero es quitar el break y el for,y usar un mientras,pero no se porque no me funciona,solo me hace una iteracion y se sale,el segundo código es el que funciona.Salu2[php]$ vi prueba5.c
#include <stdio.h>
main(){
int cont1,cont2,numeros[80],mayusculas[80];
cont1=0;
do
{


scanf("%i",&numeros[cont1]);

if(((numeros[cont1]<20)&&(numeros[cont1]!=0))||(numeros[cont1]>126))/*Comprobamos si es un numero valido*/
{
cont1--;/*Si no lo es borramos ultima posicion*/
}
if((numeros[cont1]>96)&&(numeros[cont1]<123)) /*Vemos si es una mayuscula*/
{
mayusculas[cont1]=numeros[cont1]-32;/*Si no lo es la convertimos*/
}
else
{
mayusculas[cont1]=numeros[cont1];
}
cont1++;
}
while(numeros[cont1]!=0);/*Si recibimos un 0 escribimos la salida*/

for(cont2=0;cont2<cont1;cont2++)
{
printf("%c",numeros[cont2]);/*Escribimos minusculas*/
}
printf("\n");

for(cont2=0;cont2<cont1;cont2++)
{
printf("%c",mayusculas[cont2]);/*Escribimos mayusculas*/
}
printf("\n");




}

[/php]

Este funciona pero me sobra el for y el break
[php]$ vi Ascii.c
#include <stdio.h>
main(){
int cont1,cont2,numeros[80],mayusculas[80];
for(cont1=0;cont1<80;cont1++)/*Recorremos vector numeros*/
{
scanf("%i",&numeros[cont1]);

if(((numeros[cont1]<20)&&(numeros[cont1]!=0))||(numeros[cont1]>126))/*Miramos si es un numero valido*/
{
cont1--;/*Si no lo es borramos ultima posicion*/
}
if((numeros[cont1]>96)&&(numeros[cont1]<123))/*Miramos si es minuscula*/
{
mayusculas[cont1]=numeros[cont1]-32;/*La convertimos en mayuscula*/
}
else
{
mayusculas[cont1]=numeros[cont1];/*La guardamos directamente*/
}
if(numeros[cont1]==0)/*Si recibimos un 0 escribimos la salida*/
{
for(cont2=0;cont2<cont1;cont2++)
{
printf("%c",numeros[cont2]);*/Escribimos minusculas*/
}
printf("\n");

for(cont2=0;cont2<cont1;cont2++)
{
printf("%c",mayusculas[cont2]);/*Escribimos mayusculas*/
}
printf("\n");
break;/*Salimos del bucle for*/

}
}
}

[/php]
TonYJauSS está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 13/01/2006, 01:40   #19
T4d3o
Usuario Activo
 
Fecha de ingreso: 14/abr/2004
Mensajes: 59
T4d3o es como un diamante en brutoT4d3o es como un diamante en brutoT4d3o es como un diamante en bruto
Debes aprender a depurar los programas, si no empiezas con estos sencillitos .. cuando sean mas grandes te volveras loco

Fijate:

inicializamos cont1 a 0
1ª Entrada en el bucle
Leemos caracter por teclado y lo asignamos a numeros[cont1], cont1=0
Continua la ejecucion del bucle ...
...
Tras finalizar las operaciones incremetamos cont1, asi que con1=1
Chequeamos el valor de numeros[cont1], cont1=1 <-- Aqui esta el error, el valor fue almacenado en numeros[0] y tu compruebas numeros[1]
T4d3o está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 14/01/2006, 02:49   #20
TonYJauSS
Usuario Registrado
 
Fecha de ingreso: 20/dic/2005
Mensajes: 12
TonYJauSS está en el buen camino
Gracias T4d3o con poner while(numeros[cont1-1]) solucionado,la verdad que es todo un mundo el C,cada vez me doy más cuenta que el 99% de la programación es saber plantear bien el problema .Salu2 y gracias
TonYJauSS está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Respuesta


Usuarios viendo actualmente este tema: 1 (0 usuarios registrados y 1 visitantes)
 

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado

Ir al foro

Temas similares
Tema Autor Foro Resp. Último mensaje
¿que programa necesito para abrir los archivos del kamaleon 2.0? chrysl7 SOFTWARE del PC - PROGRAMAS y S.O. 4 15/03/2005 01:02
Con que programa grabar la imagen??? fenofigo SOFTWARE del PC - PROGRAMAS y S.O. 6 10/03/2005 13:51
Algún programa que gestione los puertos? jlp14916 HARDWARE del PC - REPARACIONES y MEJORAS. 9 24/01/2005 19:47


!! ADVERTENCIAS !!: Las informaciones aquí publicadas NO CONTIENEN KEYS para la decodificación de ningún sistema: NO SON OPERATIVOS en sistemas SAT que precisen de su correspondiente suscripción.

ESTA TOTALMENTE PROHIBIDO EL USO DE ESTAS INFORMACIONES PARA LA MODIFICACIÓN O  DEFRAUDACIÓN DE SISTEMAS DE ACCESO CONDICIONAL.

ESTOS FOROS SON MODERADOS Y NO SE PERMITE LA PUBLICACIÓN DE INFORMACIONES ILEGALES POR PARTE DE LOS USUARIOS. EN CASO DE DETECTARSE ESTE TIPO DE INFORMACIONES, LOS USUARIOS SERÁN EXCLUIDOS DE ESTAS PÁGINAS.

USO DE COOKIES: Utilizamos COOKIES y de terceros para mejorar nuestros servicios y navegación por la web. Si continua navegando, consideramos que acepta su uso.  


La franja horaria es GMT +2. Ahora son las 14:44.


-------------------------------------------------------------------- --------------------------------------------------------------------

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
Hispaservicios - J.G.C - 29112549T - Rio Cinca, 2, 30 (50180) SPAIN.
Todos los derechos reservados. Prohibida cualquier reproducion total o parcial.


Foros Patrocinados por anunciantes.