Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Daniloboy

Páginas: [1]
1
Vale gracias jajaja, que liada lo del strcopy voy a probar a ver, he estado mirando tu ejercicio y usas de todo ahí, me lo voy a mirar con mas calma. Puede que haya una manera mas simplificada pero gracias de todas formas  ;D

2
Hola de nuevo, llevo un buen rato bloqueado intentando concatenar caracteres específicos de una cadena para el ejercicio de unir las dos primeras letras de las cadenas de texto que introduce el usuario, ahí va el último código a medias que se me ocurrió:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){

char cadena1[25], cadena2[20], cadena3[15];
char concatena[50];

printf("Por favor introduzca tres palabras separadas por espacios:\n\n");
scanf("%s %s %s", &cadena1, &cadena2, &cadena3);

strcopy(concatena, cadena1[1]);
strcopy(concatena, cadena2[1]);
strcopy(concatena, cadena3[1]);

printf("Las dos primeras letras de cada palabra unidas dan lugar a: %s", concatena);

    return 0;
}

Mi idea aquí era copiar los dos primeros caracteres a un arreglo nuevo y mostrarlo en consola pero claro, me dice que strcopy no tiene referencia por lo que no cuenta con que esas cadenas tenga algun caracter introducido. Además hay que usar strcat por lo que mi mente va a explotar dentro de poco y seguro que es una bobería pero no tengo ni idea.
Si pudieráis mejorar la explicación de este apartado estaría genial, a mi por lo menos es la que me resulta más confusa de las que llevo en el curso, lo digo porque esta todo como compactado en un mismo código las distintas funciones a utilizar y marea un poco no verlas por separado y despues unirlas por ejemplo.

PD: ¿Si pongo cadena[1] en estas funciones, me cuenta la cadena[0] y cadena[1]? ¿O solo me cuenta el caracter de la cadena[1]?


3
¡Hey, gracias! No se me ocurrio volver a usar el bucle for, estaba en todo el curso cegado a solo usar un bucle para mostrarlo todo y en mi mente "bloquee" la opción de volver a utilizarlo en otro lugar.

Una cosa que corregí es que en la linea que escribiste donde muestras la base se me muestra como X4 X4 etc... es mejor poner el %d antes de la X para que se muestren los numeros así: 4X4X4X etc...

Código: [Seleccionar]
printf("%dX", base);
Gracias y un saludo  8)

4
El segundo ejercicio de las potencias se puede realizar así también:
Código: [Seleccionar]
#include <stdio.h>

int main() {

int base, exp, potencia = 1, i;

printf("Base aqui: ");
scanf("%d", &base);

printf("Exponente aqui: ");
scanf("%d", &exp);

for(i=1; i<=exp; i++){
    if (exp == 0){
        printf("Resultado de potencia: %d", potencia);
    }
    else {
potencia = potencia*base;
    }

}
  printf ("El resultado de la potencia  %d elevado a %d es: %d\n\n\n", base,exp,potencia );

return 0;
}

Lo que no consigo realizar es mostrar la base tantas veces como el exponente indica en plan: El resultado de la potencia 2^4 >>> 2*2*2*2 = 16

Un saludo

5
Ostia vale, es que yo entendí otra cosa y empece a escribir expresiones booleanas en un case jajaja, esa línea me sobra y tendría el ejercicio bien, gracias por la respuesta.

case (nbomb!=(nbomb>= 1 && nbomb <= MAXBOMBAS)): printf("En ese valor no hay definida ninguna bomba"); break;

Claro, me volví loco haciendo algo que ya tenía escrito con "default"

6
He visto lo mismo en tus otros post donde contenía algún tipo de array en el ejercicio, al definir el array se cuenta el cero también por lo que si escribes arraydeCincoChar[4]; solo puedes definir del 0 al 3 porque el cero cuenta también (0,1,2,3).
Si colocamos arraydeCincoChar[5]; entonces si podrás mostrar la palabra "abeto" (0,1,2,3,4)

Un saludo y disculpa mi intromisión, se me quedo grabado a fuego esa definición de los arrays jajaja.

7
Gracias por compartir, me he dado cuenta de un pequeño fallo.
En TipoVectorde10[9]; acuérdate que se cuenta también el cero al definir el array  por lo que solo podrías asignar variables del 0 al 8 en este caso y has usado edadesConcursantes[9].

Pero no es nada importante, cambiando a Tipovectorde10[10]  estaría todo OK y ya contaría del 0 al 9, un saludo y gracias por compartir los otros post, me encanta conocer a otros que estén aprendiendo también.


8
Hey tiene buena pinta el hexadecimal, no sabía que se podía poner directamente, gracias por compartirlo.

9
Pues eso, no sé como poner una condición del último apartado del ejercicio CU00532F del tutorial de programación C desde cero, y me he aventurado a escribir algo que me imaginaba que me tiraría error, aquí va:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define MAXBOMBAS 4

int main(){
int nbomb=0;

switch (nbomb){
    case 1: printf("La bomba es de agua");          break;
    case 2: printf("La bomba es de gasolina");      break;
    case 3: printf("La bomba es de hormigon");      break;
    case MAXBOMBAS: printf("La bomba es de pasta"); break;
    case (nbomb!=(nbomb>= 1 && nbomb <= MAXBOMBAS)): printf("En ese valor no hay definida ninguna bomba"); break;

    default ("No ha establecido un valor definido entre 1 y 4 para el tipo de bomba");
}

    return 0;
}

Es esta parte -->  case (nbomb!=(nbomb>= 1 && nbomb <= MAXBOMBAS)): printf("En ese valor no hay definida ninguna bomba"); break;

Llevo un rato repasando las lecciones anteriores y pensando como expresarlo sin condicionales if else (que de hecho la segunda parte del ejercicio es hacerlo con estos, pero me es mas fácil)

Lo que quería expresar con la parte inventada es este apartado:

f) Si no se cumple ninguno de los valores anteriores mostrar el mensaje “No existe un valor válido para tipo de bomba”.

10
Si claro, lo que yo creo es que se puede hacer mejor porque para generar dos secuencias aleatorias distintas he tenido que definir la segunda simplemente como rand()%225+1) a secas. Si pudieras decirme César o cualquier otro experto por aquí como generar usando la misma variable "pacientes" sería de gran ayuda, un saludo.

PD: Para el tema del rango encontré información en otra página http://www.chuidiang.com/clinux/funciones/rand.php

numero = rand () % (N-M+1) + M;   // Este está entre M y N // Fórmula general.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(NULL));
int pacientes= rand()%225+1;
printf("El numero de pacientes en la cola es %d\n", pacientes);
printf("Transcurridos 10 minutos el numero de pacientes en la cola es %d\n", rand()%225+1);
  return 0;
}

11
Vale perdón, ya lo descubrí (era sumándole uno al rango rand()%225+1) y al volver a leerlo entendí lo de la semilla prefijada y la hora del ordenador para generar esa secuencia.
Borren mi post cuando lo vean, gracias.

12
Hola, tengo una duda práctica, en el ejercicio me indican que el numero aleatorio tenga de rango 1 a 225 en ambas "x" pero no se como aislar el cero para que no lo cuente como un valor que se pueda incluir aleatoriamente. Vi que por ejemplo para tener un rango entre 20 y 30 usaba el operador suma rand()%11+20 pero y ¿para hacerlo entre 1 y 225?
Yo lo puse así pero no consigo averiguar como aislar el cero
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(NULL));
int pacientes= rand()%226;
printf("El numero de pacientes en la cola es %d\n", pacientes);
printf("Transcurridos 10 minutos el numero de pacientes en la cola es %d\n", rand()%226);
  return 0;
}

13
Disculpa, me concentré demasiado en obtener la respuesta y ni me pase a leer las reglas del foro, pido disculpas por mi impulsividad digital.
Ahora si se ve bien el código en el post con la etiqueta "code", gracias por el consejo Alex. Antes de postear una duda intentaré averiguarla por mi mismo aunque me lleve algunos días.

14
Lo he descubierto, era una buena tontería, había puesto %d y eso es para números enteros, tuve que poner %f, siento las molestias ^^

Aquí dejo una tabla que me ayudó a descubrirlo:


%   Prints a literal '%' character (this type doesn't accept any flags, width, precision, length fields).
d, i   int as a signed decimal number. '%d' and '%i' are synonymous for output, but are different when used with scanf() for input (where using %i will interpret a number as hexadecimal if it's preceded by 0x, and octal if it's preceded by 0.)
u   Print decimal unsigned int.
f, F   double in normal (fixed-point) notation. 'f' and 'F' only differs in how the strings for an infinite number or NaN are printed ('inf', 'infinity' and 'nan' for 'f', 'INF', 'INFINITY' and 'NAN' for 'F').
e, E   double value in standard form ([-]d.ddd e[+/-]ddd). An E conversion uses the letter E (rather than e) to introduce the exponent. The exponent always contains at least two digits; if the value is zero, the exponent is 00. In Windows, the exponent contains three digits by default, e.g. 1.5e002, but this can be altered by Microsoft-specific _set_output_format function.
g, G   double in either normal or exponential notation, whichever is more appropriate for its magnitude. 'g' uses lower-case letters, 'G' uses upper-case letters. This type differs slightly from fixed-point notation in that insignificant zeroes to the right of the decimal point are not included. Also, the decimal point is not included on whole numbers.
x, X   unsigned int as a hexadecimal number. 'x' uses lower-case letters and 'X' uses upper-case.
o   unsigned int in octal.
s   null-terminated string.
c   char (character).
p   void * (pointer to void) in an implementation-defined format.
a, A   double in hexadecimal notation, starting with "0x" or "0X". 'a' uses lower-case letters, 'A' uses upper-case letters.[11][12] (C++11 iostreams have a hexfloat that works the same).
n   Print nothing, but writes the number of characters successfully written so far into an integer pointer parameter.
Note: This can be utilized in Uncontrolled format string exploits.

15
Hola a todos, antes que nada gracias por esta página pues me esta ayudando mucho a desarrollar mis conocimientos de programación. Hay algo que me lleva comiendo la cabeza como 30 minutos mas o menos y es lo siguiente:
En esta entrega piden realizar un ejercicio para realizar un acercamiento a la asignación de variables, bien, aquí esta mi código:


Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main() {
double precio;
precio=100;
double impuesto;
impuesto=0.04;
double precioreal;
precioreal=precio*impuesto;
printf("El producto final costara %d euros\n", precioreal);
return 0;
}

En las pautas pone que asigne decimales dobles (double) para las primeras variables y que la tercera (precioreal) sea la multiplicación de estas anteriores y muestre el mensaje el pantalla. La cosa es que en la interfaz, no me detecta ningún error de sintaxis aparentemente y en la consola cuando compilo me muestra "El producto final costara 0 euros"

¿Por qué no realiza la multiplicación? Seguro que es una tontería pero no lo veo...

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".