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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


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

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Ayuda con programa en c
« en: 28 Diciembre 2011, 10:21 am »

Buenos dias!! Me presento soy un chico de 21 años que he empezado a estudiar grado en ingenieria electrica y me estoy iniciando en esto de la programación. Ya me he estudiado lo basico y mas o menos me se la teoria, pero a la hora de realizar los programas en el pc tengo mas problemas. En este caso estoy haciendo un programa que lea tu nombre y apellidos y los muestre por pantalla, pero me da errores y no se cual es el fallo. Os dejo el programa en si y los errores que me da el compilador habel si me podeis ayudar  :P

Programa

#include <stdio.h>

main()
{
char nombre[20];
char apellido1[20];
char apellido2[20];
printf("Dime tu nombre\n");
scanf("%s",&nombre);
printf("Dime tu primer apellido\n");
scanf("%s",&apellido1);
printf("Dime tu segundo apellido\n");
scanf("%s",&apellido2);
printf("Tu nombre es %s %s %s", nombre,apellido1,apellido2);
}

Errores compilador
ejercicio4.c: En la función ‘main’:
ejercicio4.c:9: aviso: el formato ‘%s’ espera el tipo ‘char *’, pero el argumento 2 es de tipo ‘char (*)[20]’
ejercicio4.c:11: aviso: el formato ‘%s’ espera el tipo ‘char *’, pero el argumento 2 es de tipo ‘char (*)[20]’
ejercicio4.c:13: aviso: el formato ‘%s’ espera el tipo ‘char *’, pero el argumento 2 es de tipo ‘char (*)[20]’

PD: Comentaros que estoy trabajando en ubuntu, que por lo que tengo entendido hay comandos diferentes entre windows y ubuntu.

Un saludo programadores y feliz navidad!!  ;D




En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Ayuda con programa en c
« Respuesta #1 en: 28 Diciembre 2011, 11:00 am »

Hola

Primero de todo bienvenido al Foro.

El fallo lo tienes en los scanf, ya que cuando vas a leer cadenas no hace falta que pongas el &:
Código
  1. scanf("%s", nombre);
  2. scanf("%s", apellido1);
  3. scanf("%s", apellido2);
  4.  

Por cierto main debe devolver un int
Código
  1. int main(void)
  2. {
  3. ...
  4. return 0;
  5. }
  6.  

Léete esto

Y cuando postees código utiliza la etiqueta GeSHi (cuando escribes la tienes junto al botón de elegir el tipo de fuente)

Saludos y felices fiestas!!


En línea

Breakbeat como forma de vida
yescri

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Ayuda con programa en c
« Respuesta #2 en: 28 Diciembre 2011, 11:56 am »

Muchas gracias  :laugh: ya funciona perfectamente...

He estado mirando el enlace este que me comentas, y he sacado en conclusion que se puede utilizar el gets pero que no se recomienda, que es mejor utilizar el fgets que así no da errores.

No he encontrado donde explica porque has utilizado int main (void) y return 0 al final, quiero decir que no se cual es la función de estos, si no es mucha molestia me gustaria que me lo explicases.

Un saludo y gracias de antemano  ;)

En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Ayuda con programa en c
« Respuesta #3 en: 28 Diciembre 2011, 12:04 pm »

int main (void) es el inicio del programa y return 0; el final.

Además de eso se recomienda que antes de return 0; pongas una pausa para que veas los resultados en pantalla, hay dos opciones:
-system("PAUSE") pero esta es horrible(no la uses)
-getchar() usa esta

Citar
2. "main ()", "void main ()", "int main (void)" no son correctos (el último sería aceptable, pero no suele usarse).
3. "int main (int argc, char *argv [])". Es lo más correcto, pero lo que hay entre paréntesis puede suprimirse si no es usado en el programa.
http://foro.elhacker.net/programacion_cc/duda_con_variables-t348688.0.html

La mejor forma de usar main es:
Código
  1. int main (int argc, char *argv [])

Pero si lo que está entre paréntesis no se va a usar en el programa es mejor no ponerlo:

Código
  1. int main()

Saludos
« Última modificación: 28 Diciembre 2011, 12:10 pm por |Demon| » En línea

yescri

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Ayuda con programa en c
« Respuesta #4 en: 28 Diciembre 2011, 12:16 pm »

Muchas gracias demon  :) así lo hare.
En línea

yescri

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Ayuda con programa en c
« Respuesta #5 en: 28 Diciembre 2011, 13:12 pm »

Otra duda que me ha surgido a la hora de hacer otro programa, la escribo aqui para no abrir otro tema:

Calcular el area de un trapecio a partir de los datos de la base mayor, base menor y altura.

Programa
Código:
#include <stdio.h>

int main ()
{
float basemayor,basemenor,altura,area;

printf("escriba un valor de la base mayor en metros");
scanf("%f", &basemayor);
printf("escriba un valor de la base menor en metros");
scanf("%f", &basemenor);
printf("escriba un valor de la altura en metros");
scanf("%f", &altura);
area=[(basemayor+basemenor)*altura]/2);
printf("el area del trapecio es %f metros\n",area);
}

y me da el siguiente error:

ejercicio9.c: En la función ‘main’:
ejercicio9.c:13: error: expected expression before ‘[’ token
ejercicio9.c:13: error: expected ‘;’ before ‘)’ token
ejercicio9.c:13: error: expected statement before ‘)’ token

Haber si me podeis explicar porque cuando declaro area, antes del último printf, si pongo dicha sentencia debajo de la declaración de los float me da otro resultado diferente, es decir, que implica el cambiarlo de sitio.

Muchas gracias foreros me estais ayudando mucho  :)

P.D. No se si estoy utilizando bien el GeShi como me dijo el compañero que tenia que hacer, creo que no lo estoy haciendo bien...
En línea

Sagrini

Desconectado Desconectado

Mensajes: 107


Ver Perfil WWW
Re: Ayuda con programa en c
« Respuesta #6 en: 28 Diciembre 2011, 13:17 pm »

Código
  1. area=(basemayor+basemenor)*altura/2;
  2.  

1. Los corchetes sobran.
2. Lo que hay que hacer es poner el código entre el "[c0de]" y el "[/c0de]" (sustituye el 0 por una o.)
« Última modificación: 28 Diciembre 2011, 17:03 pm por Sagrini » En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Ayuda con programa en c
« Respuesta #7 en: 28 Diciembre 2011, 13:24 pm »

Código
  1. area=(basemayor+basemenor)*altura/2);
  2.  


Te sobra el ) del final  :P

y a yescri le sigue faltando el return del final  :silbar:

Saludos
En línea

Breakbeat como forma de vida
yescri

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Ayuda con programa en c
« Respuesta #8 en: 29 Diciembre 2011, 13:32 pm »

 ;D si que es verdad que se me ha olvidado el return 0 al final satu.

Respecto a mi pregunta de la declaracion de area supongo que no la habeis visto.En el programa para calcular el area de un trapecio si declaro area antes del último printf me da un resultado diferente que si pongo dicha sentencia debajo de la declaración de los float.

¿Alguien me puede explicar por que sucede esto?

Muchas gracias compañeros  :)
En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Ayuda con programa en c
« Respuesta #9 en: 29 Diciembre 2011, 13:34 pm »

Pon el código que tienes ahora, es que sino no me arreglo ajja

Saludos

Edito:
Lo mejor es que lo hagas así:

Código
  1. printf("el area del trapecio es %f metros\n", (basemayor+basemenor)*altura/2);

Te ahorras una variable, líneas de código y no da fallo.

Saludos
« Última modificación: 29 Diciembre 2011, 13:42 pm por |Demon| » En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 2,469 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 2,371 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
Ayuda con programa en vb
Programación Visual Basic
BriaNUR 1 1,372 Último mensaje 12 Febrero 2006, 16:55 pm
por Kizar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines