Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - furciorifa

#81
Programación C/C++ / Re: Mejorar sintaxis.
25 Agosto 2015, 03:43 AM
Matemáticamente hablando un array y un vector son lo mismo pueden ser representados de la misma manera, pero para usos más estrictos de el habla y las diferencias en C y C++ , vector es en C++ , y array es en C , tienen diferentes propiedades.
#82
Programación C/C++ / Re: Funciones int
25 Agosto 2015, 03:42 AM
#include<stdio.h>
//Comentario ignorado por compilador(No afecta al código)
//Prototipo de funcion esto es para documentar más y para que no den errores a la hora de compilar
void imprime(void);


int main(){

printf("Hola soy la funcion printf imprimiendo desde la funcion MAIN\n\n");
//Comentario ignorado por compilador(No afecta al código)

//Llamando a función imprime
imprime();
return 0;
}


void imprime(void){
printf("Hola soy la funcion IMPRIME así me nombro mi creador\n");
printf("No recibo nada como parametro\n");
printf("No regreso nada porque estoy configurada con VOID que significa VACIO en Ingles\n");

}


Esta es mi versión para DUMMIES de C con funciones muy básicas
#83
Efectivamente como dijo el moderador que es de los mejores programadores que conozco virtualmente, si hace tu ciclo, pero se desborda la capacidad del int e imprime 0.
#84
1.-Tú programa no termina cuando presionas cero porque estas comparando n<0 y las demás variables, entonces termina cuando pones un número real negativo.

2.- Si es lo que pienso que estás pidiendo porque no entendí nada de que realmente quieres hacer pero tengo una idea, creo que debes usar algo así:

char* cadena;

int tam;   

scanf("%d",&tam); //tamaño de cadena

cadena=(char*)malloc(sizeof(char)*tam)
validar(cadena);

en donde validar sería:

int validar(char* cad){
int i;
for(i=0;cad[i]!='\0';i++){
if(!isdigit(cad[i])) return 0;
cad++;
}
return 1;
}

Obviamente necesitas #include<ctype.h> y #include<stdlib.h> esta creo yo sería una buena opción para hacer esto, según entendí tu petición trata de ser más claro a la próxima
#85
La verdad es que es cierto nunca se termina de aprender, lo que te recomiendo es más bien que leas el libro Think like a programmer, porque puedes aprenderte todas las librerías de C de memoria pero si no sabes que hacer con tu lógica, y  tus habilidades para pensar o hacer un programa así te sepas toda la sintaxís de todos los lenguajes de programación no podrás crear nada concreto, hasta que hagas a tu cerebro trabajar.
#86
El uso de gets ya esta deprecado en C lee acerca de los peligros que conlleva utilizar esa función, mejor utiliza fgets(cadena,90,stdin);
#87
Cita de: joecarl en 30 Julio 2015, 13:06 PM
De hecho es que no se puede hacer. Si ese programa compila es que no es C, quiza es alguna versión rara de C, pero en C estándar ese código no puede compilar.

Código (cpp) [Seleccionar]

int n;
scanf("%d",&n);
int v[n];//esto no puede hacerse en C estándar


Lo correcto sería:

Código (cpp) [Seleccionar]

int n;
scanf("%d",&n);
int *v = (int*) malloc(n*sizeof(int));
//... hacer tareas
free(v);//al final del programa hay que liberar la memoria, si esto no se hace, quizá no pase nada ya
//que el sistema operativo se encargará de liberarla, pero lo mas adecuado es liberarla aquí.

En Linux corre a la perfección con ansi c
#88
Si quieres aprender bien C te tomará por lo menos 6 meses diarios por lo menos 2 horas diarias haciendo ejercicios, y leyendo unos 2 o 3 libros, o en caso contrario centrarte en un libro y 2 foros y hacer bastantes ejercicios , no siempre tienes que preguntar los ejercicios a hacer , puedes inventar algo, o imaginar si algo es computable y buscarle solución, C++ te tomará 3 meses o 4 , dominando C de una manera modesta, Java será fácil para tí y C# también debido a su similitud de sintaxis, pero en fin la perfección siempre se logra practicando, otra cosa limpia tu código, indentalo, haz buenas prácticas y aprende a no reinventar la rueda con funciones ya estandarizadas.
#89
#include<stdio.h>
long cuadrado(int);
long cubo(int);
int main(){

printf("Primeros 10 numeros elevados al cuadrado y al cubo\n");

int i;

for(i=1;i<=10;i++){
printf("%d al cuadrado es %ld y al cubo es %ld\n",i,cuadrado(i),cubo(i));
}


return 0;

}

long cuadrado(int i){

long aux=i*i;

return aux;

}

long cubo(int i){

long aux=i*i*i;

return aux;
}


Esta es una forma de elevar 10 números al cuadrado y cubo , como puedes ver llamo a cubo y a cuadrado que no hacen más que elevar al cuadrado y al cubo respectivamente a i y retornarla en una variable auxiliar que contiene los valores.
#90
#include<stdio.h>
main()
{

int n;

scanf("%d",&n);

int v[n];

int i,aux=1;
printf("Los primeros %d numeros primos\n",n);
for(i=0;i<n;i++){
aux=2*aux+1;
v[i]=aux;

}

for(i=0;i<n;i++){
printf(" [%d]",v[i]);
}
printf("\n");
}


Esta es la respuesta más fácil que se me ocurre utilizando arreglos, la otra manera todavía más fácil es haciendo un for sin arreglos e imprimir un 2*n +1 que es un número impar por definición.