a mi parecer es mejor meter todo en la funcion (el if y else), el codigo es mas corto y no se carga el main. me funciona bien asi. dejo el codigo por si a alguien le sirve. // comprobar si dos numeros son primos con una funcion #include int primo(); int main(){ int x,y; printf("Ingrese el primer numero:"); scanf("%i",&x); printf("Igrese el segundo numero:"); scanf("%i",&y); primo(x); primo(y); } int primo(int a){ int i,resi,j=0; for (i=2;i
Yo lo he hecho asi, y la verdad que va bien: #include int mayor(int a, int b); int factorial(int a); int primo(int a); int main() { int a,b,m,f,p; int op; char opc,opc1; do{ do{ printf("Introduce un numero "); scanf("%d",&a); printf("Introduzca otro numero "); scanf("%d",&b); }while(ab) return a; else return b; } //cabecera:int factorial(int a) //precondicion:El numero a es un numero entero positivo, el cual se ha introducido con anterioridad //postcondicion: Devuelve el valor del factorial de a int factorial(int a) { int res=1,i; for(i=1;i
El de los primos , me dio por hacerle validaciones asi que puse dos condiciones: Que no sean numeros negativos y que sean diferentes.. Código: #include #include //Comprobar si dos numeros diferentes son primos usando una funcion void esPrimo(int num); int main() { int num1,num2=0;
do{ printf("Digite el primer numero : "); scanf("%d",&num1);
printf("Digite el segundo numero : "); scanf("%d",&num2);
Se podría ahorrar trabajo a la máquina reduciendo el número de operaciones al momento de las divisiones del contador y el número, si solamente se hace la división, hasta la mitad del número introducido, ya que si no encontró un residuo de 0 en la primer mitad, obviamente no lo encontrará en la otra mitad y no sería necesario seguir con las operaciones. Al igual, que meter las condicionales en la función, para no repetir código: int primo (int num); int main (){ int x,y; printf ("Introduce el 1er numero: "); scanf ("%i",&x); printf ("Introduce el 2do numero: "); scanf ("%i",&y); primo (x); primo (y); system ("pause"); return 0; } int primo (int num){ int i, bandera; bandera = 0; for (i = 2; i
No lo hice igual, pero lo resolví sin mirar el video y funciona. #include int factorial(); int main (){ int n1,n2,aux; printf("Introduce el primer numero: "); scanf("%i",&n1); aux=factorial(n1); printf("El factorial de %i es: %i ",n1,aux);
printf("Introduce el segundo numero: "); scanf("%i",&n2); aux=factorial(n2); printf("El factorial de %i es: %i ",n2,aux); system("pause"); return 0; } int factorial(int a1, int a2){ int i,m,aux1; aux1=1; if (a1!=0){ m=a1; } else { m=a2; } for (i=1;i
Es de verdad necesario poner el prototipo?? porque en los 2 códigos he tenido el "error" de no ponerlo y aun así ha funcionado el programa a la pefeccion
así hice la de factorial;: #include int main(){ int x,y,aux; printf("Ingresar un Numero: "); scanf("%i",&x); printf("Introduce otro numero: "); scanf("%i",&y); aux = factorial(x); printf("El factorial %i es %i. ",x,aux); aux = factorial(y); printf("El Factorial de %i es %i. ",y,aux); system("pause"); return 0; } int factorial(n){ int i,x; x=1; for(i = 1; i
hola, mira aqui te dejo mi codigo para que le heches un vistacillo. solo decirte que se puede hacer solamente usando if, en vez de for, y sale mucho mas eficiente. un saludo y enhorabuena por tu canal, me esta sirviendo de mucha ayuda. seria dentro de la funcion primo: int primo (int a){ int aux; if (a%2==0) { aux = 0; } else{ aux=1; } return aux; }
+Jose Manuel Muñoz Esteban +Claudio Requena Tal como el lo ha hecho NO esta bien, si miráis el resto de comentarios en el vídeo donde explico a calcular los números primos, veréis como lo he explicado en muchas veces. El poner solo un if no es suficiente porque hay números, como el 9, donde divido entre 2 da un resto de 1, pero 9 NO es primo, ya que se puede dividir entre 3 y dará un resto de 0. Tal como esto, existen multitud de números que solo pueden ser divididos por otros primos, por ejemplo el 25 entre 3 no da como resto 1, pero no es primo, ya que 25 entre 5 el resto es 0, etc... +Jose Manuel Muñoz Esteban Por otro lado, lo que mas tiempo consume en programación son los bucles (cosa que se va explicando poco a poco, pero sobre todo al final del bloque 3), por lo que si se pudiera hacer como el usuario explica, seria MUY eficiente, pero desgraciadamente el resultado seria erróneo, por lo que es lo contrario que comentas. Un saludo.
Por aquí os dejo mi pequeña obra de arte, en la función principal no se usan más que referencias a funciones y declarar algunos números, la verdad me gusto como me quedó: Por aquí os lo dejo: #include int primo (int num); int mostrarnumero(int num); int introducirnumero(); int main(){ int num1, num2, num3; num1 = introducirnumero(); num2 = introducirnumero(); num3 = introducirnumero(); printf("
"); primo (num1); primo (num2); primo (num3); printf("
"); system("pause"); return 0; } int primo(int num){ int i; //contador int rest; //resto int prim; //comprobar si es primo meidante el resto prim=0; for(i=2;i
Una pregunta, en el minuto 8:13 el valor de retorno de la funcion con la variable fact2, devuelve como resultado el numero 362880, segun la tabla de valores para los tipos de variables, la variable int tiene un rango de -32.767 a 32.767, veo que en este caso supera el valor maximo del rango del tipo int, tengo una pregunta, en este caso seguiria valiendo 2bytes el valor de retorno (aux)? o pasaria a valer 4bytes? estoy un poco confundido. Saludos
anda, yo he hecho el ejercicio de los dos factoriales metiendo dos funciones adicionales jeje... la eficiencia no es lo mio :( dejo el código por si a alguien le interesa: #include int fact1(); int fact2(); int main (){ int x, y, z, w; printf ("introduce un numero para calcular su factorial: . "); scanf ("%i", &x); printf ("introduce otro numero para calcular su factorial: . "); scanf ("%i", &y); z = fact1 (x); printf ("el factorial de %i es: %i ", x, z); w = fact2 (y); printf ("el factorial de %i es: %i ", y, w); system ("pause"); return 0;
} int fact1 ( int a){ int i, aux; aux = 1; for ( i = 1; i
El segundo ejercicio me salió de una forma más sencilla: #include int primo(int a); int main(void) { int n1, n2, contadorAuxiliar, prim1, prim2; printf("Introduce el primer numero para comprobar si es primo: "); scanf("%d", &n1); printf("Introduce el segundo numero para comprobar si es primo: "); scanf("%d", &n2); prim1 = primo(n1); prim2 = primo(n2); return 0; } int primo(int a) { int i, contadorAuxiliar=0; for(i=1;i2) { printf("El numero %d no es primo ", a); } else { printf("El numero %d es primo ", a); } return contadorAuxiliar; }
Emilio o algun otro programdor, el ejercicio 5 no lo he comprendido bien: 5-) Realiza un programa que lea dos números 10 veces y realice en la primera lectura el producto de los números sin utilizar el operador * y en la segunda lectura la división sin usar el operador / y así sucesivamente. Finalmente debe imprimir los resultados. Implementarlo utilizando funciones (Producto_sumas, división_restas). (Realiza la comprobación de si el número es par o impar a través de un macro). Se habla de dos lecturas y el resultado se almacenara en una variable, pero analizándolo así, no se necesitan dos funciones. El ejercicio me indica que lo programa con dos funciones.
Hola, Estoy utilizando codeblocks y al reutilizar la funcion me da un warning de redefinition of funcion primo. Tengo que ponerle una función adicional si no no me funciona. A que se puede deber?
Entendí mal el ejercicio e hice un programa para saber si 2 números primos son coprimos. Mi forma de saber si un número es primo o no es ligeramente diferente a la que hace el profesor. Es válida pero algo diferente. Además yo solo hago una llamada a la función nCoprimos. Aquí la tenéis; //Saber si dos numeros primos son coprimos. #include int nCoprimos(); int main(){ int a, b, c; printf("Introduce el primer numero: "); scanf("%d", &a); printf("Introduce el segundo numero: "); scanf("%d", &b); c = nCoprimos(a,b); if(c == 2){ printf("Los numeros %d y %d son coprimos.
", a, b); }else{ printf("Los numeros %d y %d no son coprimos.
", a, b); } system("PAUSE"); return 0; } int nCoprimos(int x, int y){ int i, aux, aux1, primo; for(i = 2; i < x && aux != 1; i++){ if(x%i == 0){ aux = 1; }else{ aux = 2; } } for(i = 2; i < y && aux != 1; i++){ if(y%i == 0){ aux1 = 1; }else{ aux1 = 2; } }
if(aux == 2 && aux1 == 2){ primo = 2; }else{ primo = 1; } return primo; }
Hola, muy buen video, he aprendido muchisimo gracias a tus videos, sigue asi. Una pregunta el (int a) es el valor introducido X y Y? Me cofunde un poco por que en el anterior video donde explicas las funciones, hubo la necesidad de llamar dos variables int a y int b.
Yo he colocado como prototipo el int primo (); y no he tenido ningún tipo de warning, ¿no hay problema en no poner el "int a" entre paréntesis o tal vez algún problema más adelante?
El programa que hice para primo me parece un poco mas practico mas o menos es usando lo que vimos en la 3.6.2 simplemente sin incluir tantos printf se los dejo por aquí : //Comprobar si dos numeros diferentes son primos con una funcion #include int primo(int a); int main(){
int x,y,prim1,prim2;
printf("Introduce el primer numero para saber si es primo: "); scanf("%i",&x);
printf("Intoduce el segundo numero para saber si es primo: "); scanf("%i",&y);
todo bien hasta la parte de los if y else. Ya que ahi dices si es primo o no, pero, despues entonces no tendria sentido que devuelvas el valor aux a la función main ni todo lo relacionado a eso. Por lo demas me parece una idea que seguro la tome para en base a eso hacer otras cosas. Por lo tanto gracias.
EXCELENTE profesor, de pana te mereces un buen reconocimiento. tengo una duda, yo hice el programa así: //factorial de dos nro usando una función #include "stdio.h" #define p printf #define s scanf main(){ int x,y,n; for(n=1;n
emilio, a que se refiere este ejercicio: 5-) Realiza un programa que lea dos números 10 veces y realice en la primera lectura el producto de los números sin utilizar el operador * y en la segunda lectura la división sin usar el operador / y así sucesivamente. Finalmente debe imprimir los resultados. Implementarlo utilizando funciones (Producto_sumas, división_restas). (Realiza la comprobación de si el número es par o impar a través de un macro).
Buenas noches en primera agradezco por el valioso material que usted esta compartiendo... Tengo una duda al momento de poner el protocolo de la función factorial "int factorial ();" en necesario indicar entre los paréntesis la variable "(int a)" lo hice de las dos formas, poniéndolas y sin ponerlas y me sale lo mismo o tal ve no me estoy fijando bien, quisiera saber si existe alguna diferencia... agradezco nuevamente este material que ha subido y deseándole un feliz año.
#include int factorial(); int main(){ int Pr, Se; int factorial1, factorial2; printf("Introduce el primer numero: "); scanf("%i",&Pr); printf("Introduce el segundo numero: "); scanf ("%i",&Se); factorial1 = factorial (Pr); factorial2 = factorial (Se); printf("El factorial de %i es %i y el de %i es %i",Pr, factorial1, Se, factorial2); } int factorial(int Primo){ int Factorial; int i = 1; int aux = 1; while (i
Y si metes los printf dentro de la función primo no sería mejor? Me explico: //Decir si dos numeros son primos o no #include int primos (int a); int main () { int x,y; printf ("Introduce el primer numero: "); scanf ("%i",&x); printf ("Introduce el segundo numero: "); scanf ("%i",&y); primos (x); primos (y); system ("pause"); return 0; } int primos (int a) { int i,resto; resto = 1; for (i=2; i
Yo cuando lo hice cree una nueva función para mostrar, asi no escribia dos veces el codigo de printf:: #include int primo(int num); int comprobarprimo(int p, int n); int main (){ int x,y,contx,conty; x=21; y=764; contx=primo(x); conty=primo(y); comprobarprimo(contx,x); comprobarprimo(conty,y); system("pause"); return 0; } int primo(int num){ int i,aux,p; p=0; aux=99; for(i=2;i
pregunta! Cual es la diferencia entre un "int main (void)" y un "int main ()" porque veo que void y main son cosas muy diferentes y me estoy rompiendo la cabeza tratando buscar el porque. Me ayudaria mucho que me dijeran. Muchas Gracias de antemano!
Una duda: Cuando pasas por segunda vez por la funcion primo y factorial, ¿porqué en el prototipo de la función incluyes el "int a"? Porque cuando únicamente pasamos una vez por la función no ponemos nada
Yo lo hice así antes de ver el video xD y si sale igual o mejor //Bloque 4.2.2: Ejemplo de funciones: Conprobar si dos numeros son primos en una función #include int primo(int n); int main (void){ int x, y, prim1, prim2; printf ("Coloca un numero para x: "); scanf ("%i",&x); printf ("Coloca un numero para y: "); scanf ("%i",&y);
prim1 = primo (x); prim2 = primo (y); if (prim1 == 0){ if (prim2 == 0){ printf ("%i y %i son numeros primos.
",x,y); } else { printf ("%i SI es primo, pero %i No es primo.
",x,y); } } else { if (prim2 == 0){ printf ("%i No es primo, pero %i SI lo es.
",x,y); } else { printf ("%i y %i NO son numeros primos.
",x,y); } } system ("pause"); return 0; } int primo(int n){ int aux, i, j = 0; for (i=2; i < n && j == 0; i++){ aux = n % i; if (aux == 0){ j = 1; } } return j; }
Buenas tardes. Lo hice y me salió, pero al transcribir el código, tal y como lo tienes tú, me da esto "too-many-arguments-to-function". Si puedes resolverme lo que pueda ser gracias.
Si quiero, por diversión, encontrar el factorial de un numero relativamente grande (80), qué variable utilizo para que el resultado no aparezca como "0" o un numero negativo?
Hay que decir que si ponemos 25 o cualquier divisor por ese numero nos aparece como primo ya que cumple con ser divisible por 2. aunque no debería de ser así. (aclaro, yo copie el codigo tal cual)
Gracias pro los videos, estaba intentando hacer los ejercicios q dejo en el pdf, queria saber porque me sigue dando un numero entero si es que declaro como flotante las variables=? gracias, dejo codigo: //Calcular el perimetro, area y volumen en funcion del radio #include int main(){ int x, y; float p, a, v; printf("Introduzca el numero que corresponde a la funcion q desea realizar: 1->PERIMETRO, 2->AREA, 3->VOLUMEN: "); scanf("%i",&x); printf("Introduzca el radio: "); scanf("%i",&y); switch(x){ case 1: p=per(y); printf("El perimetro es %f ",p); break; case 2: a=area(y); printf("El area es %f ",a); break; case 3: v= vol(y); printf("El Volumen es %f ",v); break; default: printf("El Numero no es correcto "); } system ("pause"); return 0; } int per(int a){ float per; per=2*a*3.14159; return per; } int area(int a){ float area; area=a*a*3.14159; return area; } int vol(int a){ float vol; vol=4*a*a*a*3.14159/3; return vol; }
Alguien me podria decir porque me sale error en mi código?? Ya lo revise varias veces, vi si estaba guardado en .c y todo esta correcto //Calcular el factorial de 2 numeros con una funcion #include int factorial(int a); int main (){ int x, y, fact1, fact2; printf ("Introduzca un numero para buscar su factorial: "); scanf ("%i",&x); printf ("Introduzca otro numero para buscar su factorial: "); scanf ("%i",&y); fact1 = factorial (x); fact2 = factorial (y); printf ("El resultado del factorial de x es %i.
",fact1); printf ("El resultado del factorial de y es %i.
",fact2); system ("pause"); return 0; } int factorial (int a){ int i, aux; aux = 1; for (i = 1; i
TA PRO :) COPIENLO, NO LO E VISTO EN INTERNET PERO CRANEE PARA HACERLO :) SI PRECIONAS UNA TECLA DIFERENTE MIRA LO QUE PASA.... ---------------------------------------------------------------------------------------------------------------------------------------------- #include using namespace std; int formulas(int x); int inicio(); int quest(); int main (){ inicio(); return 0; } int inicio () { int a,b,res1,res2; char resq; couta; coutb; res1 = formulas(a); res2 = formulas(b); if (res1==1){ cout
Disculpa tengo una duda lo hice así y me funciono pero es diferente al tuyo no se si esta bien como lo hice o estoy usando las funciones equivocadomente (No con el fin que debería tener). #include int factorial (); int main () { int x,y,i; factorial (); system ("pause"); return 0; } int factorial (int a, int b, int i) { printf ("Introduce el primer numero para obtener su factorial: "); scanf ("%i",&a); b=1; for (i=1;i
No entiendo lo de aux*=1 he revisado el anterior video de factorial y no utilizas eso, podrías explicarme por encima lo que hace? o significa? Saludos y gracias
en todos los ejercicios de funciones me aparece el error [Error] too many arguments to function 'int factorial()' les copie un codigo sencillo como para que puedan mirarlo por favor si alguien me puede decir porque es. #include int factorial(); int main(){ int x,y,fac1; printf("Ingrese el primer numero para calcular el factorial"); scanf("%i",&x); fac1=factorial(x); return 0; } int factorial(int a){ int i,aux; aux=1; for(i=1;i>a;i++){ aux*=i; }
Alguien sabe hacer esto : -Escribir un programa que pida al usuario dos vectores cuyo tamaño es N=30. Estos vectores se pasarán a la función cambia que intercambiará el valor máximo del primer vector con el mínimo del segundo. Por ejemplo, si N=4, v1=[-1,3,3,2] y v2=[-5,-5,-5,1] los vectores intercambiados son v1=[-1,-5,-5,2] y v2=[3,3,3,1] Imprime los vectores intercambiados en el programa principal
Aun no he visto el vídeo y seguro que me sobra código, pero funciona. #include int primos(); int main(){ int x,y,aux1,aux2; aux1=0; aux2=0; printf("Introduce el primer numero: "); scanf("%i",&x); printf("Introduce el segundo numero: "); scanf("%i",&y); aux1=primos(x); aux2=primos(y); if (aux1>0){ printf("El numero %i es PRIMO. ",x); } else{ printf("El numero %i NO ES PRIMO. ",x); }
if (aux2>0){ printf("El numero %i es PRIMO. ",y); } else{ printf("El numero %i NO ES PRIMO. ",y); }
system("pause"); return 0; } int primos(int p){ int i,k,aux,auxx,inter; k=0; auxx=0; for (i=2;i
//Comprobar si dos numeros son Primos con 1 funcion #include int primos(); int main(){ int x,y; printf("digite el primer valor a comprobar:"); scanf("%i",&x); printf("digite el segundo valor a comprobar:"); scanf("%i",&y); primos(x);
primos(y);
return 0; } int primos(int a){ //comprobacion int i,cont; i=1; cont=0; while(i
Hola yo directamente puse los printf en la función y me resultó, li que no me queda claro y por favor que alguien me explique, es que no puedo dar con los resultados de 1 y 2 ya que 1 no es primo y 2 si lo es!! Me gustaría que me aclararan esto, muchas gracias y muy buenos los videos!!!, creo que lo soluciones acá, dejo mi codigo #include int primo(int a); int main(){
int x, y, prim1, prim2; printf("Introduce el primer numero a verificar si es primo: "); scanf("%i",&x); printf("Inroduce el segundo numero a verificar si es primo: "); scanf("%i",&y); prim1 = primo(x); prim2 = primo(y);
system ("pause"); return 0; } int primo(int a){ int i, m, pri, res; m = 0; for(i=2; i < a && m == 0 ; i++){ res = a % i; if (res == 0){ m = 1; } } if (m == 1 || a == 1){ printf("El numero %i.....NO es primo
",a); } else{ printf("El numero %i.....ES primo
",a); } return (pri); } jajaja fue la forma que se me ocurrió ya que al ser i igual a 2 y menor que 1 tenia problemas!!!! saludos
una pregunta amigos, como se cuando debo colocar por ejemplo, una variable que j=1 o j==1, cual es la diferencia entre decir q j es igual a 1 y decir que es ==
j=1 esta es una asignación lo que quiere decir es que j ahora vale 1 j==1 es una comparación pero j no tiene que valer 1 puede valer otro numero o incluso un carácter. ejemplo if(j=1) si tu pones esto siempre seria verdadera y entraría. if(j==1) si tu pones esto solo entraría si j vale 1 en caso contrario no entraría. lo mismo pasaría con un for o un while o un esle if
Buenos dias, tengo una duda, cuando pruebo un numero mayor a 16 me sale negativo y he revisado el codigo con tu video y lo tengo igual. A demás aveces no ocurre o son con numeros mayores. Sabrias porque ocurre? #include int factorial (int a); int main () { int x, y, fact1, fact2; printf ("Introduce el primer numero para saber su factorial: "); scanf ("%i", &x); printf ("Introduce el segundo numero para saber su factorial: "); scanf ("%i", &y); fact1= factorial (x); fact2 = factorial (y); printf ("El resultado del factorial es: %i ",fact1); printf ("El resultado del factorial es: %i ",fact2); system ("pause"); return 0; } int factorial (int a) { int i, aux; aux = 1; for (i = 1; i
Ruben Hernan Buenas, cuando tengas este tipo de problemas, hay que pasarle el depurador al codigo, por esta razon enseñe el uso del depurador en el bloque 3, veras lo facil que te resulta encontrar el problema usando esta herramienta. Un saludo.
Empieza A Programar Muchas gracias, la verdad es que no habia pensado en depurarlo y ya encontre (o supongo que lo encontré) el fallo, y es que int solo llega a un número, a partir de ahí se multiplica en negativo, pero también he probado con double (se me sale en seguida que entra en el bucle) y float sigue dandome negativo. Sabes que variable se podria declarar para que no llegue a multiplicar en negativo?
Ruben Hernan Si le metes un numero pequeño y te sale el mismo resultado que a mano, el programa esta bien, no necesitas numeros grandes. Si en cambio no te sale que el factorial de 5 es 120 (creo que era ese) pues lo tienes mal y tienes que pasarle el depurador para buscar donde se encuentra tu fallo. Un saludo.
Empieza A Programar Si, si le meto por ejemplo el 5 me sale el resultado correcto, era simple curiosidad porque a partir de "x" numero me comenzaba a dar negativo, pero bueno no es tan importante, continuaré con los videos. Muchas gracias por las respuestas y un 10 tus tutoriales!
gracias me ha ayudado bastante, pero me confunde esa parte en la que agregaste una nueva variable j, cuando es un numero primo?, cuando es 0 o 1? eso me tiene confuza pues yo nunca hubiera llegado a esa conclusion
Hola buen dia, para empezar excelentes vídeos y muy ilustrativos, bueno yo tengo una duda, si alguien me la puede responder, al dar en depurar y ejecutar me da un resultado que no debe, es mas no imprime lo que yo indique lo raro es que el programa que se ejecuta es capaz de determinar si un número es primo pero solo uno, al poner en depurar y tratar de hayar el error, resulta que ahí si se ejecuta a la perfección mi programa originalmente era un programa diferente paro sacarme de errores pero resulta en la misma cuestión eso si el programa que se ejecuta sigue siendo el mismo
Perdón es al dar en compilar y ejecutar, y al poner el código de ejemplo del vídeo sigue dando lo mismo pero el problema es el mismo y gracias de antemano por la ayuda que me puedan brindar
perdona, la ruta de escape z==0 es incorrecta no?, es que lo correcto seria que el bucle se sucediese mientras z es decir aux sea distinto de 0, y por ello cuando aux es 0 z es 1 por tanto la ruta de escape debe de ser z!=1 ademas en tu video anterior de primo en rutas de escape lo pones como yo propongo.gracias un saludo
hola hice este código pero no me pone cero en las salida, por qué? #include #include #include using namespace std; int factorial (int a); main() { int x, y, fact1, fact2; cout x; cout y; fact1 = factorial(x); fact2 = factorial(y); cout
Ve a opciones del compilador, busca una opción que diga linker y al dar ahí selecciona que si quieres que dev c++ enlace la información del código al depuradorar
#include int factorial(int a, int b); int main (){ int x, y; facorial(x, y); system ("pause"); return 0; } int factorial (int a, int b){ int fact1, fact2, i, j; printf ("Introdusca un numero para calcular su factorial: "); scanf ("%i",&a); printf ("Introdusca otro numero para calcular su factorial: "); scanf ("%i",&b); fact1 = 1; fact2 = 1; for (i = 1; i
La definición de numero primo utilizada aquí esta mal!
9 ปีที่แล้ว
No he visto totalmente la solución pero creo que mi código es más corto: //Comprobar si dos números diferentes son primos con una función. #include #include int primo (); int main(){ int x, y,prim1,prim2,p=0; while (p
Tengo un problema, hice todo bien, pero siempre me dice que el número no es primo, sea cual sea, éste es el código: //comprobar si dos numeros diferentes son primos en una funcion #include int primo (int a); int main () { int x,y,prim1,prim2; printf ("Introduce el primer numero: "); scanf ("%i",&x); printf ("Introduce el segundo numero: "); scanf ("%i",&y); prim1 = primo (x); prim2 = primo (y); if (prim1 == 0){ printf ("En numero %i es primo. ",x); } else { printf ("En numero %i no es primo. ",x); } if (prim2 == 0){ printf ("En numero %i es primo. ",y); } else { printf ("En numero %i no es primo. ",y); } system ("pause"); return 0; } int primo (int a){ int i,j,aux; j = 0; for (i = 2; 1 < a && j == 0; i++){ aux = a % i; if (aux == 0){ j = 1; } } return j; } Desde ya, muchas gracias C:
Malreycu tu funcion de primo esta mal, vuelve al video donde explico como se hace y o revisala. En el futuro cuando tengas errores de este tipo usa el depurador, que para este tipo de casos existe y es realmente util. Un saludo.
Ya lo solucioné!! Gracias!! Y sí, el depurador es de lo mejor, estoy aprendiendo a usarlo como se debe. Había puesto mal una variable, ya me estaba volviendo loco. XD
#include int primos (int a); int main (){ int x, y, primo1, primo2; printf ("Introduce el primer numero para realizar la comprobacion: "); scanf ("%i",&x); printf ("Introduce el segundo numero para realizar la comprobacion: "); scanf ("%i",&y); primo1= primos (x); primo2= primos (y); if (primo1==1){ printf ("El primer numero (el %i) SI es primo. ",x); } else{ printf ("El primer numero (el %i) NO es primo. ",x); }
if (primo2==1){ printf ("El segundo numero (el %i) SI es primo. ",y); } else{ printf ("El segundo numero (el %i) NO es primo. ",y); }
system ("pause"); return 0; } int primos (int a){ int j,i,n; j=0; for (i=2;i
Alguien me puede explicar if(prim1==0) { printf("El numero %i es primo ",x); } else { printf("El numero %i NO es primo ",x) } por que prim1==0 el numero es primo?
+alejandro reyes amigo si te das cuenta en la funcion que hizo el llamada int primo hay un bucle llamado for si analisas ese bucle te daras cuenta el por que el puso ese condicional
Empieza A Programar disculpa no seria esto el codigo si j!=1 entraria al bucle y si no cumple sale del bucle int primo(int a){ int aux,j,i; j=0; for(i=2;i
#include #include int primos (int a); int main() { int x,y,primo1,primo2; printf("Escribe el primer numero:"); scanf("%i",&x); printf("Escribe el primer numero:"); scanf("%i",&y); primo1 = primos (x); primo2 = primos (y); return 0; } int primos (int a){ int cont,aux,i; for(i=1;i 2){ printf("El numero %i no es primo ",a); } else { printf("El numero %i es primo ",a); } return 0; }
Pongo lo que sea y siempre me dice que NO es primo, aunque ponga, por ejemplo, 10, ayudenme: //Comprobar si 2 numeros distintos son primos con una funcion #include int calculo(); int main(){ int x, y, aux1, aux2; printf("Escribir un numero: "); scanf("%i",&x); do{ printf("Escribir un numero distinto al anterior: "); scanf("%i",&y); }while(y == x); aux2 = calculo(y); aux1 = calculo(x); if(aux1 = 0){ printf("%i es primo ",x); } else{ printf("%i NO es primo ",x); } if(aux2 = 0){ printf("%i es primo ",y); } else{ printf("%i NO es primo ",y); } system("pause"); return 0; } int calculo(int a){ int i, aux, j; j = 0; for(i = 2; i < a && j == 0; i++){ aux = a %i; if(aux == 0){ j = 1; } } return j; }
quien me pude dar una ayuda en este ejercicio. necesito poner la suma de todos los numeros pares lo consigo hacer pero va sumando por cada numero par. yo quiero que salga la suma al final de la muestra de todos el conjunto de numeros par. //14.- Realiza un programa que imprima la suma de los números pares entre dos y mil. int main(){ int x,y,contador,sumapar; sumapar=0; printf("ingrese numero x:"); scanf("%i",&x); printf("ingrese numero y:"); scanf("%i",&y); for(contador=x;contador
Te agradezco que subas tus clases, eres a mí parecer quien enseña mejor en TH-cam, muchísimas gracias! Saludos desde Chile!
Un crack, mi profe nos deja a la suerte, pero mi suerte eres tú
Este tipo, merece que vea el minuto completo de anuncio. Gracias campeón por tanta información
Excelentes vídeos
Completos, ilustrativos y geniales para practicar...
muchas Felicidades por tus aportaciones
Gracias, con tus videos me entero mas que con la profesora. Un saludo!!!!
Si quieres sube uno con fichero.
Te ponen estos videos en alguna clase?
jajaj yo hice los dos codigos por mi cuenta y cuando mire el video completo aprendi a reutilizar la funcion xD.(habia creado otra funcion extra xD).
+LionsLite Me paso exactamente igual!!!! xDDDDDD
+LionsLite igual =P
me paso lo mismo :v no entendia muy bien para que servian
Me pasó lo mismo xD.
a mi parecer es mejor meter todo en la funcion (el if y else), el codigo es mas corto y no se carga el main.
me funciona bien asi. dejo el codigo por si a alguien le sirve.
// comprobar si dos numeros son primos con una funcion
#include
int primo();
int main(){
int x,y;
printf("Ingrese el primer numero:");
scanf("%i",&x);
printf("Igrese el segundo numero:");
scanf("%i",&y);
primo(x);
primo(y);
}
int primo(int a){
int i,resi,j=0;
for (i=2;i
Yo lo he hecho asi, y la verdad que va bien:
#include
int mayor(int a, int b);
int factorial(int a);
int primo(int a);
int main()
{
int a,b,m,f,p;
int op;
char opc,opc1;
do{
do{
printf("Introduce un numero
");
scanf("%d",&a);
printf("Introduzca otro numero
");
scanf("%d",&b);
}while(ab)
return a;
else
return b;
}
//cabecera:int factorial(int a)
//precondicion:El numero a es un numero entero positivo, el cual se ha introducido con anterioridad
//postcondicion: Devuelve el valor del factorial de a
int factorial(int a)
{
int res=1,i;
for(i=1;i
El de los primos , me dio por hacerle validaciones asi que puse dos condiciones: Que no sean numeros negativos y que sean diferentes..
Código:
#include
#include
//Comprobar si dos numeros diferentes son primos usando una funcion
void esPrimo(int num);
int main()
{
int num1,num2=0;
do{
printf("Digite el primer numero :
");
scanf("%d",&num1);
printf("Digite el segundo numero :
");
scanf("%d",&num2);
if(num1
Se podría ahorrar trabajo a la máquina reduciendo el número de operaciones al momento de las divisiones del contador y el número, si solamente se hace la división, hasta la mitad del número introducido, ya que si no encontró un residuo de 0 en la primer mitad, obviamente no lo encontrará en la otra mitad y no sería necesario seguir con las operaciones. Al igual, que meter las condicionales en la función, para no repetir código:
int primo (int num);
int main (){
int x,y;
printf ("Introduce el 1er numero: ");
scanf ("%i",&x);
printf ("Introduce el 2do numero: ");
scanf ("%i",&y);
primo (x);
primo (y);
system ("pause");
return 0;
}
int primo (int num){
int i, bandera;
bandera = 0;
for (i = 2; i
No lo hice igual, pero lo resolví sin mirar el video y funciona.
#include
int factorial();
int main (){
int n1,n2,aux;
printf("Introduce el primer numero: ");
scanf("%i",&n1);
aux=factorial(n1);
printf("El factorial de %i es: %i
",n1,aux);
printf("Introduce el segundo numero: ");
scanf("%i",&n2);
aux=factorial(n2);
printf("El factorial de %i es: %i
",n2,aux);
system("pause");
return 0;
}
int factorial(int a1, int a2){
int i,m,aux1;
aux1=1;
if (a1!=0){
m=a1;
}
else {
m=a2;
}
for (i=1;i
muy buenos videos, explicas muy bien.
Es de verdad necesario poner el prototipo??
porque en los 2 códigos he tenido el "error" de no ponerlo y aun así ha funcionado el programa a la pefeccion
así hice la de factorial;:
#include
int main(){
int x,y,aux;
printf("Ingresar un Numero: ");
scanf("%i",&x);
printf("Introduce otro numero: ");
scanf("%i",&y);
aux = factorial(x);
printf("El factorial %i es %i.
",x,aux);
aux = factorial(y);
printf("El Factorial de %i es %i.
",y,aux);
system("pause");
return 0;
}
int factorial(n){
int i,x;
x=1;
for(i = 1; i
Cuando haces lo del # primo, no es necesario hacer otra variable basta con aux es suficiente mira
int primo(int x){
int i,aux;
aux=1;
for(i=2;i
hola, mira aqui te dejo mi codigo para que le heches un vistacillo.
solo decirte que se puede hacer solamente usando if, en vez de for, y sale mucho mas eficiente. un saludo y enhorabuena por tu canal, me esta sirviendo de mucha ayuda.
seria dentro de la funcion primo:
int primo (int a){
int aux;
if (a%2==0)
{
aux = 0;
}
else{
aux=1;
}
return aux;
}
+Jose Manuel Muñoz Esteban +Claudio Requena Tal como el lo ha hecho NO esta bien, si miráis el resto de comentarios en el vídeo donde explico a calcular los números primos, veréis como lo he explicado en muchas veces.
El poner solo un if no es suficiente porque hay números, como el 9, donde divido entre 2 da un resto de 1, pero 9 NO es primo, ya que se puede dividir entre 3 y dará un resto de 0. Tal como esto, existen multitud de números que solo pueden ser divididos por otros primos, por ejemplo el 25 entre 3 no da como resto 1, pero no es primo, ya que 25 entre 5 el resto es 0, etc...
+Jose Manuel Muñoz Esteban Por otro lado, lo que mas tiempo consume en programación son los bucles (cosa que se va explicando poco a poco, pero sobre todo al final del bloque 3), por lo que si se pudiera hacer como el usuario explica, seria MUY eficiente, pero desgraciadamente el resultado seria erróneo, por lo que es lo contrario que comentas.
Un saludo.
Por aquí os dejo mi pequeña obra de arte, en la función principal no se usan más que referencias a funciones y declarar algunos números, la verdad me gusto como me quedó:
Por aquí os lo dejo:
#include
int primo (int num);
int mostrarnumero(int num);
int introducirnumero();
int main(){
int num1, num2, num3;
num1 = introducirnumero();
num2 = introducirnumero();
num3 = introducirnumero();
printf("
");
primo (num1);
primo (num2);
primo (num3);
printf("
");
system("pause");
return 0;
}
int primo(int num){
int i; //contador
int rest; //resto
int prim; //comprobar si es primo meidante el resto
prim=0;
for(i=2;i
Una pregunta, en el minuto 8:13 el valor de retorno de la funcion con la variable fact2, devuelve como resultado el numero 362880, segun la tabla de valores para los tipos de variables, la variable int tiene un rango de -32.767 a 32.767, veo que en este caso supera el valor maximo del rango del tipo int, tengo una pregunta, en este caso seguiria valiendo 2bytes el valor de retorno (aux)? o pasaria a valer 4bytes? estoy un poco confundido. Saludos
anda, yo he hecho el ejercicio de los dos factoriales metiendo dos funciones adicionales jeje... la eficiencia no es lo mio :(
dejo el código por si a alguien le interesa:
#include
int fact1();
int fact2();
int main (){
int x, y, z, w;
printf ("introduce un numero para calcular su factorial: .
");
scanf ("%i", &x);
printf ("introduce otro numero para calcular su factorial: .
");
scanf ("%i", &y);
z = fact1 (x);
printf ("el factorial de %i es: %i
", x, z);
w = fact2 (y);
printf ("el factorial de %i es: %i
", y, w);
system ("pause");
return 0;
}
int fact1 ( int a){
int i, aux;
aux = 1;
for ( i = 1; i
El segundo ejercicio me salió de una forma más sencilla:
#include
int primo(int a);
int main(void) {
int n1, n2, contadorAuxiliar, prim1, prim2;
printf("Introduce el primer numero para comprobar si es primo: ");
scanf("%d", &n1);
printf("Introduce el segundo numero para comprobar si es primo: ");
scanf("%d", &n2);
prim1 = primo(n1);
prim2 = primo(n2);
return 0;
}
int primo(int a) {
int i, contadorAuxiliar=0;
for(i=1;i2) {
printf("El numero %d no es primo
", a);
} else {
printf("El numero %d es primo
", a);
}
return contadorAuxiliar;
}
Emilio o algun otro programdor, el ejercicio 5 no lo he comprendido bien:
5-) Realiza un programa que lea dos números 10 veces y realice en la primera lectura el
producto de los números sin utilizar el operador * y en la segunda lectura la división sin
usar el operador / y así sucesivamente. Finalmente debe imprimir los resultados.
Implementarlo utilizando funciones (Producto_sumas, división_restas).
(Realiza la comprobación de si el número es par o impar a través de un macro).
Se habla de dos lecturas y el resultado se almacenara en una variable, pero analizándolo así, no se necesitan dos funciones. El ejercicio me indica que lo programa con dos funciones.
yo lo hice asi...
int factorial1 (int fact1a) {
int i, fact, fact1;
fact = 1;
for ( i=1 ; i
geniales tus videos
printf ("
Hola, Estoy utilizando codeblocks y al reutilizar la funcion me da un warning de redefinition of funcion primo. Tengo que ponerle una función adicional si no no me funciona. A que se puede deber?
Entendí mal el ejercicio e hice un programa para saber si 2 números primos son coprimos. Mi forma de saber si un número es primo o no es ligeramente diferente a la que hace el profesor. Es válida pero algo diferente. Además yo solo hago una llamada a la función nCoprimos. Aquí la tenéis;
//Saber si dos numeros primos son coprimos.
#include
int nCoprimos();
int main(){
int a, b, c;
printf("Introduce el primer numero: ");
scanf("%d", &a);
printf("Introduce el segundo numero: ");
scanf("%d", &b);
c = nCoprimos(a,b);
if(c == 2){
printf("Los numeros %d y %d son coprimos.
", a, b);
}else{
printf("Los numeros %d y %d no son coprimos.
", a, b);
}
system("PAUSE");
return 0;
}
int nCoprimos(int x, int y){
int i, aux, aux1, primo;
for(i = 2; i < x && aux != 1; i++){
if(x%i == 0){
aux = 1;
}else{
aux = 2;
}
}
for(i = 2; i < y && aux != 1; i++){
if(y%i == 0){
aux1 = 1;
}else{
aux1 = 2;
}
}
if(aux == 2 && aux1 == 2){
primo = 2;
}else{
primo = 1;
}
return primo;
}
Hola, muy buen video, he aprendido muchisimo gracias a tus videos, sigue asi.
Una pregunta el (int a) es el valor introducido X y Y?
Me cofunde un poco por que en el anterior video donde explicas las funciones, hubo la necesidad de llamar dos variables int a y int b.
EXCELENTE
Yo he colocado como prototipo el int primo (); y no he tenido ningún tipo de warning, ¿no hay problema en no poner el "int a" entre paréntesis o tal vez algún problema más adelante?
Buen video. Para la próximos seria bueno hacer zoom en el código para ver el cosigo sin exforzar la vista.
El programa que hice para primo me parece un poco mas practico mas o menos es usando lo que vimos en la 3.6.2 simplemente sin incluir tantos printf se los dejo por aquí :
//Comprobar si dos numeros diferentes son primos con una funcion
#include
int primo(int a);
int main(){
int x,y,prim1,prim2;
printf("Introduce el primer numero para saber si es primo: ");
scanf("%i",&x);
printf("Intoduce el segundo numero para saber si es primo: ");
scanf("%i",&y);
prim1=primo(x);
prim2=primo(y);
return 0;
}
int primo(int a){
int i,j,aux;
j=0;
for (i = 2;i
todo bien hasta la parte de los if y else. Ya que ahi dices si es primo o no, pero, despues entonces no tendria sentido que devuelvas el valor aux a la función main ni todo lo relacionado a eso. Por lo demas me parece una idea que seguro la tome para en base a eso hacer otras cosas. Por lo tanto gracias.
EXCELENTE profesor, de pana te mereces un buen reconocimiento.
tengo una duda, yo hice el programa así:
//factorial de dos nro usando una función
#include "stdio.h"
#define p printf
#define s scanf
main(){
int x,y,n;
for(n=1;n
emilio, a que se refiere este ejercicio:
5-) Realiza un programa que lea dos números 10 veces y realice en la primera lectura el
producto de los números sin utilizar el operador * y en la segunda lectura la división sin
usar el operador / y así sucesivamente. Finalmente debe imprimir los resultados.
Implementarlo utilizando funciones (Producto_sumas, división_restas).
(Realiza la comprobación de si el número es par o impar a través de un macro).
no lo entiende!
entiendo
Buenas noches en primera agradezco por el valioso material que usted esta compartiendo... Tengo una duda al momento de poner el protocolo de la función factorial "int factorial ();" en necesario indicar entre los paréntesis la variable "(int a)" lo hice de las dos formas, poniéndolas y sin ponerlas y me sale lo mismo o tal ve no me estoy fijando bien, quisiera saber si existe alguna diferencia... agradezco nuevamente este material que ha subido y deseándole un feliz año.
#include
int factorial();
int main(){
int Pr, Se;
int factorial1, factorial2;
printf("Introduce el primer numero: ");
scanf("%i",&Pr);
printf("Introduce el segundo numero: ");
scanf ("%i",&Se);
factorial1 = factorial (Pr);
factorial2 = factorial (Se);
printf("El factorial de %i es %i y el de %i es %i",Pr, factorial1, Se, factorial2);
}
int factorial(int Primo){
int Factorial;
int i = 1;
int aux = 1;
while (i
Buen video
Y si metes los printf dentro de la función primo no sería mejor? Me explico:
//Decir si dos numeros son primos o no
#include
int primos (int a);
int main () {
int x,y;
printf ("Introduce el primer numero: ");
scanf ("%i",&x);
printf ("Introduce el segundo numero: ");
scanf ("%i",&y);
primos (x);
primos (y);
system ("pause");
return 0;
}
int primos (int a) {
int i,resto;
resto = 1;
for (i=2; i
Yo hice esto mismo xD
Yo cuando lo hice cree una nueva función para mostrar, asi no escribia dos veces el codigo de printf::
#include
int primo(int num);
int comprobarprimo(int p, int n);
int main (){
int x,y,contx,conty;
x=21;
y=764;
contx=primo(x);
conty=primo(y);
comprobarprimo(contx,x);
comprobarprimo(conty,y);
system("pause");
return 0;
}
int primo(int num){
int i,aux,p;
p=0;
aux=99;
for(i=2;i
pregunta!
Cual es la diferencia entre un "int main (void)" y un "int main ()"
porque veo que void y main son cosas muy diferentes y me estoy rompiendo la cabeza tratando buscar el porque. Me ayudaria mucho que me dijeran.
Muchas Gracias de antemano!
Creo que el void no regresa valor es 0 y pues se ocupa cuando no nesesitas el valor de una variable o otra cosa pero creo que ya no lo ocupas
Una duda:
Cuando pasas por segunda vez por la funcion primo y factorial, ¿porqué en el prototipo de la función incluyes el "int a"?
Porque cuando únicamente pasamos una vez por la función no ponemos nada
Yo lo hice así antes de ver el video xD y si sale igual o mejor
//Bloque 4.2.2: Ejemplo de funciones: Conprobar si dos numeros son primos en una función
#include
int primo(int n);
int main (void){
int x, y, prim1, prim2;
printf ("Coloca un numero para x: "); scanf ("%i",&x);
printf ("Coloca un numero para y: "); scanf ("%i",&y);
prim1 = primo (x);
prim2 = primo (y);
if (prim1 == 0){
if (prim2 == 0){
printf ("%i y %i son numeros primos.
",x,y);
}
else {
printf ("%i SI es primo, pero %i No es primo.
",x,y);
}
}
else {
if (prim2 == 0){
printf ("%i No es primo, pero %i SI lo es.
",x,y);
}
else {
printf ("%i y %i NO son numeros primos.
",x,y);
}
}
system ("pause");
return 0;
}
int primo(int n){
int aux, i, j = 0;
for (i=2; i < n && j == 0; i++){
aux = n % i;
if (aux == 0){
j = 1;
}
}
return j;
}
hay un error en tu codigo que si introduces 1 te va salir primo hay que poner 2 condicionales mas.
se podría haber hecho una funcion que le mandes el valor y tenga los if/else e imprima lo q corresponda... y la llamas con x primero y con y luego no?
Buenas tardes.
Lo hice y me salió, pero al transcribir el código, tal y como lo tienes tú, me da esto "too-many-arguments-to-function". Si puedes resolverme lo que pueda ser gracias.
te quiero
Si quiero, por diversión, encontrar el factorial de un numero relativamente grande (80), qué variable utilizo para que el resultado no aparezca como "0" o un numero negativo?
Pudes cambiar a una función y variable tipo float también pides poner double si necesitas más espacio
Hay que decir que si ponemos 25 o cualquier divisor por ese numero nos aparece como primo ya que cumple con ser divisible por 2. aunque no debería de ser así. (aclaro, yo copie el codigo tal cual)
No, fallo mio. Puse el return antes de lo debido. Lo agregue despues del if perteneciente a for, deberia de ponerse despues del bucle.
Gracias pro los videos, estaba intentando hacer los ejercicios q dejo en el pdf, queria saber porque me sigue dando un numero entero si es que declaro como flotante las variables=? gracias, dejo codigo:
//Calcular el perimetro, area y volumen en funcion del radio
#include
int main(){
int x, y;
float p, a, v;
printf("Introduzca el numero que corresponde a la funcion q desea realizar:
1->PERIMETRO, 2->AREA, 3->VOLUMEN:
");
scanf("%i",&x);
printf("Introduzca el radio:
");
scanf("%i",&y);
switch(x){
case 1: p=per(y); printf("El perimetro es %f
",p); break;
case 2: a=area(y); printf("El area es %f
",a); break;
case 3: v= vol(y); printf("El Volumen es %f
",v); break;
default: printf("El Numero no es correcto
");
}
system ("pause");
return 0;
}
int per(int a){
float per;
per=2*a*3.14159;
return per;
}
int area(int a){
float area;
area=a*a*3.14159;
return area;
}
int vol(int a){
float vol;
vol=4*a*a*a*3.14159/3;
return vol;
}
Alguien me podria decir porque me sale error en mi código?? Ya lo revise varias veces, vi si estaba guardado en .c y todo esta correcto
//Calcular el factorial de 2 numeros con una funcion
#include
int factorial(int a);
int main (){
int x, y, fact1, fact2;
printf ("Introduzca un numero para buscar su factorial: ");
scanf ("%i",&x);
printf ("Introduzca otro numero para buscar su factorial: ");
scanf ("%i",&y);
fact1 = factorial (x);
fact2 = factorial (y);
printf ("El resultado del factorial de x es %i.
",fact1);
printf ("El resultado del factorial de y es %i.
",fact2);
system ("pause");
return 0;
}
int factorial (int a){
int i, aux;
aux = 1;
for (i = 1; i
TA PRO :) COPIENLO, NO LO E VISTO EN INTERNET PERO CRANEE PARA HACERLO :)
SI PRECIONAS UNA TECLA DIFERENTE MIRA LO QUE PASA....
----------------------------------------------------------------------------------------------------------------------------------------------
#include
using namespace std;
int formulas(int x);
int inicio();
int quest();
int main (){
inicio();
return 0;
}
int inicio () {
int a,b,res1,res2;
char resq;
couta;
coutb;
res1 = formulas(a);
res2 = formulas(b);
if (res1==1){
cout
DEBEN GUARDARLO EN LA EXTENCION .cpp , SI FUNCIONARÁ , "me gusta explorar otras opciones y no quedarme con una opción..."
Saludos.
Hola , el parametro en la llamada del subprograma se puede declarar abajo y que relacion tiene con las demas variables?
Disculpa tengo una duda lo hice así y me funciono pero es diferente al tuyo no se si esta bien como lo hice o estoy usando las funciones equivocadomente (No con el fin que debería tener).
#include
int factorial ();
int main () {
int x,y,i;
factorial ();
system ("pause");
return 0;
}
int factorial (int a, int b, int i) {
printf ("Introduce el primer numero para obtener su factorial: ");
scanf ("%i",&a);
b=1;
for (i=1;i
No entiendo lo de aux*=1 he revisado el anterior video de factorial y no utilizas eso, podrías explicarme por encima lo que hace? o significa? Saludos y gracias
+Chema Martínez Tienes que empezar desde el primer video y lo entenderás.
Un saludo.
+Chema Martínez aux*=I es exactamente lo mismo que aux = aux*I
+Chema Cuesta amig@ eso el la abreviacion de aux = aux * 1 igual puedes hacer los mismo con los demas signos espero haberte ayudado a despejar tu duda
en todos los ejercicios de funciones me aparece el error
[Error] too many arguments to function 'int factorial()'
les copie un codigo sencillo como para que puedan mirarlo por favor si alguien me puede decir porque es.
#include
int factorial();
int main(){
int x,y,fac1;
printf("Ingrese el primer numero para calcular el factorial");
scanf("%i",&x);
fac1=factorial(x);
return 0;
}
int factorial(int a){
int i,aux;
aux=1;
for(i=1;i>a;i++){
aux*=i;
}
return aux;
}
Daiana Rey Compilando y ejecutando tu codigo, es que no estas imprimiendo el resultado de la variable fac1, y en la funcion en lugar de se i>a es i
Alguien sabe hacer esto :
-Escribir un programa que pida al usuario dos vectores cuyo tamaño es N=30. Estos vectores se pasarán a la función cambia que intercambiará el valor máximo del primer vector con el mínimo del segundo. Por ejemplo, si N=4, v1=[-1,3,3,2] y v2=[-5,-5,-5,1] los vectores intercambiados son v1=[-1,-5,-5,2] y v2=[3,3,3,1] Imprime los vectores intercambiados en el programa principal
Aun no he visto el vídeo y seguro que me sobra código, pero funciona.
#include
int primos();
int main(){
int x,y,aux1,aux2;
aux1=0;
aux2=0;
printf("Introduce el primer numero: ");
scanf("%i",&x);
printf("Introduce el segundo numero: ");
scanf("%i",&y);
aux1=primos(x);
aux2=primos(y);
if (aux1>0){
printf("El numero %i es PRIMO.
",x);
}
else{
printf("El numero %i NO ES PRIMO.
",x);
}
if (aux2>0){
printf("El numero %i es PRIMO.
",y);
}
else{
printf("El numero %i NO ES PRIMO.
",y);
}
system("pause");
return 0;
}
int primos(int p){
int i,k,aux,auxx,inter;
k=0;
auxx=0;
for (i=2;i
Hola, sabrias porque al ejecutar el programa, el mismo deja de funcionar?
Si aparece nombredelprograma.exe dejo de funcionar, muy probablemente te falto un & en uno de los scanf
//Comprobar si dos numeros son Primos con 1 funcion
#include
int primos();
int main(){
int x,y;
printf("digite el primer valor a comprobar:"); scanf("%i",&x);
printf("digite el segundo valor a comprobar:"); scanf("%i",&y);
primos(x);
primos(y);
return 0;
}
int primos(int a){ //comprobacion
int i,cont;
i=1;
cont=0;
while(i
Hola yo directamente puse los printf en la función y me resultó, li que no me queda claro y por favor que alguien me explique, es que no puedo dar con los resultados de 1 y 2 ya que 1 no es primo y 2 si lo es!! Me gustaría que me aclararan esto, muchas gracias y muy buenos los videos!!!, creo que lo soluciones acá, dejo mi codigo
#include
int primo(int a);
int main(){
int x, y, prim1, prim2;
printf("Introduce el primer numero a verificar si es primo: ");
scanf("%i",&x);
printf("Inroduce el segundo numero a verificar si es primo: ");
scanf("%i",&y);
prim1 = primo(x);
prim2 = primo(y);
system ("pause");
return 0;
}
int primo(int a){
int i, m, pri, res;
m = 0;
for(i=2; i < a && m == 0 ; i++){
res = a % i;
if (res == 0){
m = 1;
}
}
if (m == 1 || a == 1){
printf("El numero %i.....NO es primo
",a);
}
else{
printf("El numero %i.....ES primo
",a);
}
return (pri);
}
jajaja fue la forma que se me ocurrió ya que al ser i igual a 2 y menor que 1 tenia problemas!!!! saludos
una pregunta amigos, como se cuando debo colocar por ejemplo, una variable que j=1 o j==1, cual es la diferencia entre decir q j es igual a 1 y decir que es ==
j=1 esta es una asignación lo que quiere decir es que j ahora vale 1
j==1 es una comparación pero j no tiene que valer 1 puede valer otro numero o incluso un carácter.
ejemplo
if(j=1) si tu pones esto siempre seria verdadera y entraría.
if(j==1) si tu pones esto solo entraría si j vale 1 en caso contrario no entraría.
lo mismo pasaría con un for o un while o un esle if
amigo en el if de prim1 iva 1
Buenos dias, tengo una duda, cuando pruebo un numero mayor a 16 me sale negativo y he revisado el codigo con tu video y lo tengo igual. A demás aveces no ocurre o son con numeros mayores. Sabrias porque ocurre?
#include
int factorial (int a);
int main () {
int x, y, fact1, fact2;
printf ("Introduce el primer numero para saber su factorial: ");
scanf ("%i", &x);
printf ("Introduce el segundo numero para saber su factorial: ");
scanf ("%i", &y);
fact1= factorial (x);
fact2 = factorial (y);
printf ("El resultado del factorial es: %i
",fact1);
printf ("El resultado del factorial es: %i
",fact2);
system ("pause");
return 0;
}
int factorial (int a) {
int i, aux;
aux = 1;
for (i = 1; i
Ruben Hernan Buenas, cuando tengas este tipo de problemas, hay que pasarle el depurador al codigo, por esta razon enseñe el uso del depurador en el bloque 3, veras lo facil que te resulta encontrar el problema usando esta herramienta.
Un saludo.
Empieza A Programar
Muchas gracias, la verdad es que no habia pensado en depurarlo y ya encontre (o supongo que lo encontré) el fallo, y es que int solo llega a un número, a partir de ahí se multiplica en negativo, pero también he probado con double (se me sale en seguida que entra en el bucle) y float sigue dandome negativo. Sabes que variable se podria declarar para que no llegue a multiplicar en negativo?
Ruben Hernan Si le metes un numero pequeño y te sale el mismo resultado que a mano, el programa esta bien, no necesitas numeros grandes. Si en cambio no te sale que el factorial de 5 es 120 (creo que era ese) pues lo tienes mal y tienes que pasarle el depurador para buscar donde se encuentra tu fallo.
Un saludo.
Empieza A Programar
Si, si le meto por ejemplo el 5 me sale el resultado correcto, era simple curiosidad porque a partir de "x" numero me comenzaba a dar negativo, pero bueno no es tan importante, continuaré con los videos.
Muchas gracias por las respuestas y un 10 tus tutoriales!
gracias me ha ayudado bastante, pero me confunde esa parte en la que agregaste una nueva variable j, cuando es un numero primo?, cuando es 0 o 1? eso me tiene confuza pues yo nunca hubiera llegado a esa conclusion
Hola buen dia, para empezar excelentes vídeos y muy ilustrativos, bueno yo tengo una duda, si alguien me la puede responder, al dar en depurar y ejecutar me da un resultado que no debe, es mas no imprime lo que yo indique lo raro es que el programa que se ejecuta es capaz de determinar si un número es primo pero solo uno, al poner en depurar y tratar de hayar el error, resulta que ahí si se ejecuta a la perfección mi programa originalmente era un programa diferente paro sacarme de errores pero resulta en la misma cuestión eso si el programa que se ejecuta sigue siendo el mismo
Perdón es al dar en compilar y ejecutar, y al poner el código de ejemplo del vídeo sigue dando lo mismo pero el problema es el mismo y gracias de antemano por la ayuda que me puedan brindar
perdona, la ruta de escape z==0 es incorrecta no?, es que lo correcto seria que el bucle se sucediese mientras z es decir aux sea distinto de 0, y por ello cuando aux es 0 z es 1 por tanto la ruta de escape debe de ser z!=1 ademas en tu video anterior de primo en rutas de escape lo pones como yo propongo.gracias un saludo
hola hice este código pero no me pone cero en las salida, por qué?
#include
#include
#include
using namespace std;
int factorial (int a);
main()
{
int x, y, fact1, fact2;
cout x;
cout y;
fact1 = factorial(x);
fact2 = factorial(y);
cout
Hola francisco yo compile tu codigo en linux con g++ y si me compila y me da cero de salida
Hola Benjamin, así es daba cero ya que en el return de la función debe ser return aux y no return 0;
se podia utilizar otra funcion para los if del main
No me funciona el depurador que puedo hacer?
Ve a opciones del compilador, busca una opción que diga linker y al dar ahí selecciona que si quieres que dev c++ enlace la información del código al depuradorar
eres un exelente profesor haces maravillosas explicaciones pero en el video 4.1 me decepcionastes jajajaj
#include
int factorial(int a, int b);
int main (){
int x, y;
facorial(x, y);
system ("pause");
return 0;
}
int factorial (int a, int b){
int fact1, fact2, i, j;
printf ("Introdusca un numero para calcular su factorial: ");
scanf ("%i",&a);
printf ("Introdusca otro numero para calcular su factorial: ");
scanf ("%i",&b);
fact1 = 1;
fact2 = 1;
for (i = 1; i
+SuperShane96 Aunque me costo un poco entender, ya entendí tu código, pero no hay función auxiliar, a eso me refería, gracias por responder, saludos.
Supongo que era más fácil poner un sólo printf en la función primo...
La definición de numero primo utilizada aquí esta mal!
No he visto totalmente la solución pero creo que mi código es más corto:
//Comprobar si dos números diferentes son primos con una función.
#include
#include
int primo ();
int main(){
int x, y,prim1,prim2,p=0;
while (p
+Joan Joel Cáceres Ramírez sip pero el no usa math.h por eso el tuyo es mas corto , siempre veo que usas math en tus codigos . La mayoria xP
Tengo un problema, hice todo bien, pero siempre me dice que el número no es primo, sea cual sea, éste es el código:
//comprobar si dos numeros diferentes son primos en una funcion
#include
int primo (int a);
int main () {
int x,y,prim1,prim2;
printf ("Introduce el primer numero: ");
scanf ("%i",&x);
printf ("Introduce el segundo numero: ");
scanf ("%i",&y);
prim1 = primo (x);
prim2 = primo (y);
if (prim1 == 0){
printf ("En numero %i es primo.
",x);
}
else {
printf ("En numero %i no es primo.
",x);
}
if (prim2 == 0){
printf ("En numero %i es primo.
",y);
}
else {
printf ("En numero %i no es primo.
",y);
}
system ("pause");
return 0;
}
int primo (int a){
int i,j,aux;
j = 0;
for (i = 2; 1 < a && j == 0; i++){
aux = a % i;
if (aux == 0){
j = 1;
}
}
return j;
}
Desde ya, muchas gracias C:
Malreycu tu funcion de primo esta mal, vuelve al video donde explico como se hace y o revisala.
En el futuro cuando tengas errores de este tipo usa el depurador, que para este tipo de casos existe y es realmente util.
Un saludo.
Ya lo solucioné!! Gracias!! Y sí, el depurador es de lo mejor, estoy aprendiendo a usarlo como se debe. Había puesto mal una variable, ya me estaba volviendo loco. XD
#include
int primos (int a);
int main (){
int x, y, primo1, primo2;
printf ("Introduce el primer numero para realizar la comprobacion: ");
scanf ("%i",&x);
printf ("Introduce el segundo numero para realizar la comprobacion: ");
scanf ("%i",&y);
primo1= primos (x);
primo2= primos (y);
if (primo1==1){
printf ("El primer numero (el %i) SI es primo.
",x);
}
else{
printf ("El primer numero (el %i) NO es primo.
",x);
}
if (primo2==1){
printf ("El segundo numero (el %i) SI es primo.
",y);
}
else{
printf ("El segundo numero (el %i) NO es primo.
",y);
}
system ("pause");
return 0;
}
int primos (int a){
int j,i,n;
j=0;
for (i=2;i
Alguien me puede explicar
if(prim1==0) {
printf("El numero %i es primo
",x);
}
else {
printf("El numero %i NO es primo
",x)
}
por que prim1==0 el numero es primo?
alejandro reyes No seria mas facil que te vieras los videos anteriores?
+alejandro reyes amigo si te das cuenta en la funcion que hizo el llamada int primo hay un bucle llamado for si analisas ese bucle te daras cuenta el por que el puso ese condicional
Empieza A Programar disculpa no seria esto el codigo si j!=1 entraria al bucle y si no cumple sale del bucle
int primo(int a){
int aux,j,i;
j=0;
for(i=2;i
Yo lo hice asi:
#include
#include
/* primo O no primo */
int primo(int a);
int main() {
int x, y;
printf("introduce primer numero:
");
scanf("%i", &x);
printf("introdfuce segundo numero:
");
scanf("%i", &y);
primo (x);
primo (y);
return 0;
}
int primo(int a){
int i;
int r = 1;
for(i=2; i
#include
#include
int primos (int a);
int main()
{
int x,y,primo1,primo2;
printf("Escribe el primer numero:");
scanf("%i",&x);
printf("Escribe el primer numero:");
scanf("%i",&y);
primo1 = primos (x);
primo2 = primos (y);
return 0;
}
int primos (int a){
int cont,aux,i;
for(i=1;i 2){
printf("El numero %i no es primo
",a);
}
else {
printf("El numero %i es primo
",a);
}
return 0;
}
Pongo lo que sea y siempre me dice que NO es primo, aunque ponga, por ejemplo, 10, ayudenme:
//Comprobar si 2 numeros distintos son primos con una funcion
#include
int calculo();
int main(){
int x, y, aux1, aux2;
printf("Escribir un numero: ");
scanf("%i",&x);
do{
printf("Escribir un numero distinto al anterior: ");
scanf("%i",&y);
}while(y == x);
aux2 = calculo(y);
aux1 = calculo(x);
if(aux1 = 0){
printf("%i es primo
",x);
}
else{
printf("%i NO es primo
",x);
}
if(aux2 = 0){
printf("%i es primo
",y);
}
else{
printf("%i NO es primo
",y);
}
system("pause");
return 0;
}
int calculo(int a){
int i, aux, j;
j = 0;
for(i = 2; i < a && j == 0; i++){
aux = a %i;
if(aux == 0){
j = 1;
}
}
return j;
}
Tu problema esta en los if, deberia ser if(aux==0), aunque no parezca los dos == son importantes
Gracias, crei que los habia puesto
creo que tienes un error por que los factoriales son numeros muy grandes y debes poner un float.
Es un error menor. Eso ya depende de si se quiere trabajar con números grandes o chicos
quien me pude dar una ayuda en este ejercicio. necesito poner la suma de todos los numeros pares lo consigo hacer pero va sumando por cada numero par. yo quiero que salga la suma al final de la muestra de todos el conjunto de numeros par.
//14.- Realiza un programa que imprima la suma de los números pares entre dos y mil.
int main(){
int x,y,contador,sumapar;
sumapar=0;
printf("ingrese numero x:");
scanf("%i",&x);
printf("ingrese numero y:");
scanf("%i",&y);
for(contador=x;contador
Si pruebas con los números: 100, 200, 300... y los pones dos veces, te sale uno primo y otro que no es primo JAJAJAJAJ
no me funcionó
perdona cambia z por j.
No incluiste el numero 2 en el caso de los primos, estaria mal, de nada.