Obliczenie liczby cyfr dziesietnych C

Obliczenie liczby cyfr dziesietnych C
VK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Witam serdecznie. Mam takie zadanie:

Napisać funkcję, której zadaniem będzie obliczenie liczby cyfr dziesiętnych argumentu tak, aby pasowała do poniższego kodu:

Kopiuj
int x=123, y;
cyfry(x,y);
printf("Liczba %d posiada %d cyfr\n",x,y);

Mógłby mi ktoś z tym pomóc?
Dostałem takie polecenie i po 1 nawet nie rozumiem o co chodzi w tym poleceniu, a co dopiero, żeby to napisać.
Z góry dziękuję :)

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1

W C - absolutnie nie ma takiej możliwości.
C++ - co innego.

VK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Miałem takie zadanie na egzaminie na uczelni i nie zrobiłem go. W takim razie dostaliśmy niewykonalne zadanie?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1
  • Może coś źle zrozumiałeś.
  • Może zadanie było z podpuchą i należało zmienić na cyfry(x,&y); po czym dopiero rozwiązać.
  • Może na tyle nie rozumiesz C że ampersand został przez ciebie nie zauważony.
  • Może nie wiesz czego was uczą (czyli C++ nie C).
VK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Mam zdjęcie egzaminu. Przepisałem całość. Przykład kodu jest napisany w C.

Być może zadanie było z podpuchą, aczkolwiek wykładowca o niczym takim nie wspomniał :) Zadanie jest prosto sformułowane. Napisz funkcję, aby pasowała do poniższego kodu.

Myślę, że nie powinieneś z ludzi robić idiotów.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
VanKrejw napisał(a):

Myślę, że nie powinieneś z ludzi robić idiotów.
Posiedzisz tyle co ja na forach - to zmienisz zdanie - no nie da się z nich zrobić idiotów, ponieważ ...

VK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

To że siedzą na forach ludzie upośledzeni, to nie znaczy, że każdego można objąć tą miarą. Jeżeli nie chcesz / nie umiesz pomóc, to chociaż daruj sobie takie uwagi w moim kierunku :)

nalik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1039
0

O ludzie, weź się za naukę programowania, bo to jest naprawdę trywialne. Nie jesteś w stanie napisać pętli, która sprawdzi ile razy liczba dzieli się przez 10?
Pomijam sposób przekazywania parametrów do funkcji, doczytaj.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
2

Po pierwsze, skoro moją ogólną uwagę bez wahania bierzesz do siebie to ... sam wnioski zrób.
Po drugie, już pomogłem, wyjaśniłem co trzeba zmienić, jeżeli nadal nie wiesz co robić hmmm ... już zrobiłeś wnioski?
Po trzecie, jeżeli zadanie nie zostało jakoś specjalnie obwarowane to wystarczyła by wariacja na temat: printf("Liczba %d posiada %lg cyfr\n",x,ceil(log10(x)));

VK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

O kolejny mistrz programowania. Skoro piszę na forum, żeby się czegoś dowiedzieć, to chyba oczywiste, że właśnie się UCZĘ. Jakbym był takim koksem jak Ty, to chyba bym się nie prosił o pomoc.

[edit]

dobra poradziłem sobie.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Oczywiście, niczemu was nie uczono po czym dano egzamin który mogą przejść wyłącznie koksy?
Czy zdajesz sobie sprawę że program szkolny (łącznie z wyższymi) ułożony jest tak aby dali rady przejść nawet niezbyt rozgarnięci osoby?

VK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
1
_13th_Dragon napisał(a):

Oczywiście, niczemu was nie uczono po czym dano egzamin który mogą przejść wyłącznie koksy?
Czy zdajesz sobie sprawę że program szkolny (łącznie z wyższymi) ułożony jest tak aby dali rady przejść nawet niezbyt rozgarnięci osoby?

Przedmiot dotyczy ogólnie języków i paradygmatów programowania. Mieliśmy na nim Javę, po czym dostajemy na wykładzie egzamin, na którym jest C.

[edit]

Zresztą, to nie jest kwestia zaprogramowania, po prostu źle zrozumiałem polecenie i przez to wydawało mi się trudniejsze do zrobienia niż faktycznie jest. Oczywiście wskazówki też pomogły, aczkolwiek ludzie moglibyście się nauczyć bycia milszymi.

Blue_Carpet
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 132
0

@Edit
Tutaj masz kodzik na liczbę cyfr:

Kopiuj
#include <stdio.h>

int main()
{
    int x=1234, y;
    y = LiczbaCyfr(x);
    printf("Liczba %d posiada %d cyfr\n",x,y);
}
int LiczbaCyfr(int x)
{
    int y=1;
    while(x=x/10)y++;
    return y;
}

A tutaj masz kodzik na sumę cyfr:

Kopiuj
#include <stdio.h>
#include <stdlib.h>
int SumaCyfr(int x);
int main()
{
    int x = 12345;
    printf("Suma cyfr wynosi: %d\n", SumaCyfr(x));
    return 0;
}
int SumaCyfr(int x)
{
    if(x > 10)
    {
        return x%10 + SumaCyfr(x/10);
    }
    else
    {
        return x;
    }
    return 0;
}

Wystarczy pokombinowac, troche pomodyfikowac i powinno grac

spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
4
Kopiuj
#define cyfry(x, y) y = ceil(log10(x))

może nie funkcja, ale bez modyfikowania kodu to jedyna opcja w C.
http://ideone.com/zJTPPQ

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.