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 - lohayne

#1
Muchas gracias amigos, mi programa se está ejecutando perfectamente
#2
Hola amigos, Rehice mi código y creé una función para contar dígitos. Mi programa funcionó hasta 8 dígitos, después de eso, el número fue invertido pero falta el último dígito pero no sé si es semántica error o debido a variable int.

#include <stdio.h>
#include <stdlib.h>

// função para contar digitos
int contdigitos(int n);

int main() {
    int n,i;
    int *v;
    int nd=contdigitos(n);
    //como vetor é dinâmico ,usei a função malloc
v =(int*) malloc (nd*sizeof(int));
printf("digite um numero:");
scanf("%i",&n);
for (i=0;i<nd;i++) {
    v[i]=n%10;
    n=n/10;

    printf("%i",v[i]);
    if (n<=0)
    break;}
    return 0;}

int contdigitos(int n) {
    if (n < 10) {
    return 1;
    }
    int contador = 0;
    while (n > 0) {
        n /= 10;
        contador++;
    }
    return contador;
}
#3
funcionó usando el bucle,
pero necesito hacer usando el vector como pide el ejercicio, y no estoy consiguiendo
#4
Hola
Hola buenas tardes,
Estoy haciendo un ejercicio para invertir un número (un número de la elección del usuario)
ejemplo: 1234 se convierte en 4321
pero a pesar de que el programa se ejecuta, cuando pongo 3 dígitos o más, los números aparecen invertidos, pero falta 1 dígito
¿Alguien me puede ayudar?




Olá boa tarde,
Eu estou fazendo um exercício para inverter um numero(um numero da escolha do usuário)
exemplo:1234 vira 4321
mas apesar do programa rodar,quando eu coloco 3 dígitos ou mais  ,os números aparecem invertidos ,mas o ultimo digito não aparece
alguém poderia me ajudar?


#include <stdio.h>
#include <stdlib.h>

int main() {
   int n,cifra,i;
   int *v;
    v =(int*) malloc (n*sizeof(int));
   printf("escriba un numero:");
   scanf("%i",&n);
   for (i=0;i<n;i++) {
   cifra=n%10;
   n=n/10;
   v=cifra;
   printf("%i",v );}
   return 0;}



· Los códigos deben ir en etiquetas GeSHi (corregido)
>aquí las reglas del foro
-Engel Lex
#5
El código funcionó
No sé cómo Agradecêlos, ayudaron mucho
#6
#include<stdio.h>
#include<math.h>

int contdigitos(int &n);
int maiordig (int &n);
//main

int main () {
    char numero [15];
    int n,pos=0,num;
    scanf("%i",&n);

    int numdigitos= contdigitos(n);
    printf("\n numero de digitos:%i",numdigitos);

    int largedig= maiordig(n);
    printf("maior digito:%i",largedig);

   fprintf(stdout, "introduzca un digito: ");
   scanf("%s", numero);
   fprintf(stdout, "ntrodusca una posicion: ");
   scanf("%d", &pos);

   fprintf(stdout, "%dth digito de %s es %c.\n", pos, numero, numero[pos-1]);



    return 0;}



// numero de digitos

    int contdigitos(int &n) {
    if (n < 10) {
    return 1;
    }
    int contador = 0;
    while (n > 0) {
        n /= 10;
        contador++;
    }
    return contador;
}


int maiordig (int &n)
{
int digit, maior=0;
while (n>0){
digit=n%10;
if(digit>maior)
maior=digit;
n=n/10;}
return maior ;}

jajaja
Ahora la posición es correcta, pero mi función para mayor dígito esta volviendo 0 y no tengo ni idea de por qué
#7
#include<stdio.h>
#include<math.h>

int contdigitos(int &n);
int posicao (int &num,int &n);
int maiordig (int n);

//main

int main () {
    int n=0,pos,num;
    scanf("%i",&n);
    int numdigitos= contdigitos(n);
    int npos=posicao(num,n);
    printf("\n numero de digitos:%i",numdigitos);
    printf("\n entre com um numero: ");
    scanf("%d", &n);

    printf("coloque a posicao: ");
    scanf("%d", &pos);

    printf("%dth digit of %d is %d.\n", pos, n,npos);

   int largedig= maiordig(n);
    printf("maior digito:%i",largedig);


    return 0;}



// numero de digitos

    int contdigitos(int &n) {
    if (n < 10) {
    return 1;
    }
    int contador = 0;
    while (n > 0) {
        n /= 10;
        contador++;
    }
    return contador;
}
//num = posição
int posicao(int &num,int &n){
    int r, t1, t2;

    t1 = pow(10, num +1);
    r = n % t1;

    if (num > 0)
    {
        t2 = pow(10, num);
        r = r / t2;
    }

    return r;
}
int maiordig (int n)
{
int digit, maior=0;
while (n>0){
digit=n%10;
if(digit>maior)
maior=digit;
n=n/10;}
return maior ;}

El ejercicio original se compone de 3 funciones, pero sólo la función que pide la posición va mal
#8
Programación C/C++ / Posición de un dígito
15 Abril 2018, 20:00 PM
hola
¿alguien podría ayudarme con una función en la que pongo un número y cualquier posición y el programa me devuelve el dígito del número que está en esa posición. De izquierda a derecha.

Por ejemplo
(358, 1) = 3
El dígito de 358 en la posición 1 es 3

Hice un código, pero la función relacionada con la posición sigue yendo mal