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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Dudas programación en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas programación en C  (Leído 2,318 veces)
ironserch

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Dudas programación en C
« en: 24 Septiembre 2014, 12:53 pm »

Hola amig@s necesito crear un codigo en C. En el me piden que se escriban las siguientes expresiones enteras: 1 -12 -123 1234 12345 una en cada linea y con un ancho de campo igual a 9.

Ampliar el programa con una sentencia de escritura que escriba las mismas expresiones especificando solo un ancho de campo a 4.

(Hasta aqui creo que tendria el codigo bien)

Pero me pide ahora que añada otra sentencia de escritura que escriba en una nueva linea tu inicial con un ancho de campo = 3 seguida del caracter \ y a continuacion tus apellidos con un ancho de campo = 15.

Luego incluyendo una variable "r" de tipo float, añadir otras 3 sentencias de escritura que escriban en una nueva linea su valor real, su valor con dos decimales y su valor real en un ancho de 10 y 2 de precision. Asignar previamente el valor 123.129.


Código
  1. #include <stdio.h>
  2.  
  3. void main()
  4. {
  5.    system("title SALIDA DE DATOS CON FORMATO EJERCICIO A");
  6.  
  7.    int ent1, ent2, ent3, ent4, ent5;
  8.  
  9.    printf("Introducir primera expresion enteras: ");
  10.    scanf("%d", &ent1);
  11.  
  12.    printf("\n\nIntroducir primera expresion enteras: ");
  13.    scanf("%d", &ent2);
  14.  
  15.    printf("\n\nIntroducir primera expresion enteras: ");
  16.    scanf("%d", &ent3);
  17.  
  18.    printf("\n\nIntroducir primera expresion enteras: ");
  19.    scanf("%d", &ent4);
  20.  
  21.    printf("\n\nIntroducir primera expresion enteras: ");
  22.    scanf("%d", &ent5);
  23.  
  24.    //ancho de campo = 9:
  25.  
  26.    printf("\n\n\nPara el ancho de campo = 9:");
  27.  
  28.    printf("\n\n%9d", ent1);
  29.  
  30.    printf("\n\n%9d", ent2);
  31.  
  32.    printf("\n\n%9d", ent3);
  33.  
  34.    printf("\n\n%9d", ent4);
  35.  
  36.    printf("\n\n%9d", ent5);
  37.  
  38.    //ancho de campo = 4:
  39.  
  40.    printf("\n\n\nPara el ancho de campo = 4:");
  41.  
  42.    printf("\n\n%4d", ent1);
  43.  
  44.    printf("\n\n%4d", ent2);
  45.  
  46.    printf("\n\n%4d", ent3);
  47.  
  48.    printf("\n\n%4d", ent4);
  49.  
  50.    printf("\n\n%4d", ent5);
  51.  
  52.    /* Hasta aqui me resuelve bien.
  53.  
  54.    pero no se como se haria el tercer punto */
  55.  
  56.  
  57.    char nombre, apellido;
  58.  
  59.    printf("\n\n\nIntroducir nombre: ");
  60.    scanf("%c", &nombre);
  61.  
  62.    printf("\n\n ")
  63.  
  64.    printf("\n\n\nIntroducir apellido: ");
  65.    scanf("%c", &apellido);
  66.  
  67.    /* tendria que salir si el nombre por ej es ELENA y sus apellidos NITO DEL BOSQUE
  68.  
  69.     tendria que aparecer como ELE\NITO DEL BOSQUE*/
  70.  
  71. }


PD: Me piden que lo haga sin estructuras de control.

Muchas gracias! =)



« Última modificación: 24 Septiembre 2014, 12:59 pm por ironserch » En línea

ironserch

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Dudas programación en C
« Respuesta #1 en: 24 Septiembre 2014, 13:36 pm »

Para el tercer apartado me sale si escribo lo siguiente

Código
  1.   printf("\n\n%3s %15", "ELE\\NITO DEL BOSQUE");

Pero quiero tenerlo de esta otra forma:

Código
  1. char nombre, apellidos;
  2.  
  3.    printf("\n\n\nIntroducir nombre: ");
  4.    scanf("%3s", &nombre);
  5.  
  6.    printf("\n\n\nIntroducir apellidos: ");
  7.    scanf("%15s", &apellidos);
  8.  
  9.    printf("\n\nLa sentencia seria: %3s %15", "nombre\\apellidos");


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Dudas programación en C
« Respuesta #2 en: 24 Septiembre 2014, 13:45 pm »

Código
  1. char nombre, apellidos;

Si tu intención es almacenar cadenas de caracteres tienes que usar buffers. Un char, a secas, únicamente puede almacenar un carácter... una cadena de caracteres, como su propio nombre indica, es una agrupación de varios caracteres:

Código
  1. char nombre[20], apellidos[20];

Si sabes que el nombre no va a pasar de 3 caracteres y los apellidos de 15 puedes apurar el uso de memoria al máximo:

Código
  1. char nombre[4], apellidos[16];

Esto es porque las cadenas de caracteres SIEMPRE acaban con el carácter nulo, luego necesitas añadir uno a la longitud máxima prevista en la cadena.

Un saludo.
En línea

ironserch

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Dudas programación en C
« Respuesta #3 en: 24 Septiembre 2014, 23:38 pm »

Pero como hago para que me aparezca como "ELE\NITO DEL BOSQUE"??

El codigo que tengo ahora es este:


 
Código
  1.   char nombre[4], apellidos[16];
  2.  
  3.    printf("\n\n\nIntroducir nombre: ");
  4.    scanf("%s", &nombre);
  5.  
  6.    printf("\n\n\nIntroducir apellidos: ");
  7.    scanf("%s", &apellidos);
  8.  
  9.    printf("\n\nLa sentencia seria: %s %s", nombre\\apellidos);
« Última modificación: 24 Septiembre 2014, 23:47 pm por ironserch » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Dudas programación en C
« Respuesta #4 en: 25 Septiembre 2014, 05:17 am »

Pero me pide ahora que añada otra sentencia de escritura que escriba en una nueva linea tu inicial con un ancho de campo = 3 seguida del caracter \ y a continuacion tus apellidos con un ancho de campo = 15.
Para obtener el nombre (una sola palabra) utilizas "%s" y para el apellido (varias palabras) " %[^\n]", de esta forma:
Código
  1. char nombre[4], apellidos[16];
  2.  
  3. puts("Nombre:");
  4. scanf("%s", nombre); /* NO se debe utilizar el operador '&' */
  5.  
  6. puts("Apellidos:");
  7. scanf(" %[^\n]", apellidos); /* NO se debe utilizar el operador '&' */

Para la impresión utilizas "%3c" para el primer carácter del nombre (almacenado en "nombre[0]"), "%15s" para los apellidos y el carácter '\' se debe escapar con '\\':
Código
  1. printf("%3c\\%15s\n", nombre[0], apellidos);

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
algunas dudas en programacion BATCH(nuevo en esto de programacion)
Scripting
stock_C 8 9,018 Último mensaje 19 Junio 2009, 18:08 pm
por frank30
Programación: Dudas, muchas dudas
Dudas Generales
GoRock 4 3,686 Último mensaje 9 Marzo 2013, 03:39 am
por GoRock
dudas programación
Desarrollo Web
jemez44 1 1,468 Último mensaje 23 Noviembre 2013, 17:24 pm
por #!drvy
Dudas programación en C
Programación C/C++
ironserch 3 1,824 Último mensaje 21 Septiembre 2014, 02:57 am
por kaiserr
Dudas programación en C
Programación C/C++
ironserch 5 1,898 Último mensaje 21 Septiembre 2014, 17:44 pm
por ironserch
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines