Autor
|
Tema: Variable i variable aux (Leído 1,974 veces)
|
Ander123
Desconectado
Mensajes: 101
|
Hola, no entiendo muy bien el funcionamiento de la variable aux en este trozo de programa. Se supone que la variable aux queda con lo declarado en el for anterior pero la segunda parte no me queda clara. Se supone que la variable i esmenos o igual que aux, que es todo lo del primer cilo for:S, no entiendo como puede ser menos o igual a 3 instrucciones distintas.Gracias;)
for(i=0; (frase=getchar())!='\n'; ++i) aux=i; for (i=0; i<=aux; ++i)
|
|
« Última modificación: 26 Octubre 2012, 10:46 am por Ander123 »
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Hola, no entiendo muy bien el funcionamiento de la variable aux en este trozo de programa. Se supone que la variable aux queda con lo declarado en el for anterior pero la segunda parte no me queda clara. Se supone que la variable i es menos o igual que aux, que es todo lo del primer ciclo for:S, no entiendo como puede ser menos o igual a 3 instrucciones distintas.Gracias;)
for(i=0; (frase=getchar())!='\n'; ++i) aux=i; for (i=0; i<=aux; ++i)
Y por qué no. Fíjate en el resultado del printf en el siguiente caso, y observa como la variable i sufre un incremento de tres unidades por los tres i++ que se encuentra antes de volver a tomar un nuevo valor:#include <stdio.h> #include <stdlib.h> int main() { int i,aux=0; char frase[80]; for(i=0; (frase[++i]=getchar())!='\n';++i) { aux=i; for (i=0; i<=aux; ++i) printf ("aux=%d i=%d\n",aux,i); } return 0; }
Por cierto, dos puntualizaciones: * tú código como está for(i=0; (frase=getchar())!='\n'; ++i)
te dará error. * por qué vas cambiando de foro las casi mismas cuestiones?[/size]
|
|
|
En línea
|
|
|
|
Ander123
Desconectado
Mensajes: 101
|
Porque es el mismo programa pero cuestiones que no tienen nada que ver unas con las otras y asi no pregunto siempre a las mismas personas.. porque me saltan muchas dudas. Ademas, el resultado es: "aux=1 i=0,aux=1 i=1", la variable i solo se incrementa 2 veces:S si dando como valor 0 es ya un incremento. Por lo tanto la variable i es menor o igual a todo lo escrito en i, pero no entiendo bien como funciona. Menor o igual a i=0 etc..:S
|
|
« Última modificación: 26 Octubre 2012, 13:04 pm por Ander123 »
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
pero no entiendo bien como funciona Te dejo esté rollo que es la descripción del proceso:
si entras la cadena asdf :
for_1: i empieza en cero y la condición frase[++i] lo incrementa, por lo que pasa q valer 1=aux for_2: aux=1 e i desde cero a uno 1 0....1 1
for_1: i que valía 1 se incrementa en la condición del for_2, la condición de frase[++i] y en el propio for_1 con lo que toma el valor 4=aux for_2:aux= 4 e i desde cero a 4: 4 0 ...41....4 2...4 3...4 4
for_1: i que valía 4 se incrementa en la condición del for_2, la condición de frase[++i] y en el propio for_1 con lo que toma el valor 7=aux for_2:aux= 7 e i desde cero a 7: 7 0..7 1...........7 7
for_1: i que valía 7 se incrementa en la condición del for_2, la condición de frase[++i] y en el propio for_1 con lo que toma el valor 10=aux for_2:aux= 10 e i desde cero a 10: 10 0..10 1..10 2.........10 10
Y como la cadena era "asdf" produce sólo cuatro ciclos:aux=1,4,7,10 Si entras una cadena más larga habrán más ciclos, por ejemplo el siguiente sería:
for_1 : i que valía 10 se incrementa en la condición del for_2, la condición de frase[++i] y en el propio for_1 con lo que toma el valor 13=aux for_2:aux= 13 e i desde cero a 13: 13 0..13 1..13 2........13 13
|
|
|
En línea
|
|
|
|
Ander123
Desconectado
Mensajes: 101
|
Pero no lo deberia incrementar en 3 porque hay 3 i++ , por lo tanto deberia quedar aux =2,i=2 aux=2, i=3 o esos i++ no incrementan? bueno dejemoalo, eate programa aun es demasiado dificil.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Pero no lo deberia incrementar en 3 porque hay 3 i++ , por lo tanto deberia quedar aux =2,i=2 aux=2, i=3 o esos i++ no incrementan? bueno dejemoalo, eate programa aun es demasiado dificil.
Al primer " i "sólo le afecta el incremento de la condición, de ahí que valga aux=1, los siguientes ya pasan por los tres incrementos de ahí que aux pase a valer 4 ,7 ,10 ,13 ,...
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
variable en la URL
« 1 2 »
PHP
|
dimitrix
|
12
|
4,188
|
8 Abril 2007, 20:54 pm
por dimitrix
|
|
|
Como imprimir el valor de una variable definida en una variable...
Scripting
|
nhaalclkiemr
|
5
|
6,497
|
3 Mayo 2007, 17:58 pm
por sirdarckcat
|
|
|
La variable de tipo Object o la variable de bloque With no está establecida
Programación Visual Basic
|
rubeng
|
5
|
12,081
|
17 Septiembre 2007, 00:04 am
por rubeng
|
|
|
Error 91: Variable de tipo object o la variable de bloque with no esta estableci
Programación Visual Basic
|
brus_k10
|
2
|
6,402
|
16 Junio 2009, 16:20 pm
por cassiani
|
|
|
my.resources.source.replace(variable, variable) Ayuda codedom
.NET (C#, VB.NET, ASP)
|
70N1
|
4
|
4,802
|
19 Octubre 2011, 12:57 pm
por 70N1
|
|