Dual in Dezimal Язык C

  • Помогите мне найти ошыбку в программе.


    Программа должна сначяла сохранить дуальное чесло а потом
    вырешать его черес функцию в нормальне Децимальноэ чесло.


    Программа выдаёт мне сильно высокие числа


    Помогите мне пожалуйста найти ошыбку


    Вот [Source]
    [


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


    int fDezimal (int dual[])
    {
    int i,x,wert,Ergebnis,I;



    x=1;
    for(i=0;i<10;i++)
    {

    wert = dual[i]* x;
    Ergebnis = Ergebnis + wert;
    x*2;
    }
    printf("%d\n\n",Ergebnis);
    }
    int main(int argc, char *argv[])
    {
    int abfrage;
    int Ergebnis;
    int dual [10];
    int i;
    printf("RECHNER FЬR DIE UMRECHNUNG VON ZAHLENSYSTEMEN\n\n");

    printf("\n\nBitte geben Sie jetzt die Dualzahl ein\n\n");
    for(i=0; i<10; i++)
    {
    scanf("%d",& dual[i]);
    }



    printf("Die Dualzahl lautet: ");
    printf("%d",dual[0]);
    printf("%d",dual[1]);
    printf("%d",dual[2]);
    printf("%d",dual[3]);
    printf("%d",dual[4]);
    printf("%d",dual[5]);
    printf("%d",dual[6]);
    printf("%d",dual[7]);
    printf("%d",dual[8]);
    printf("%d\n\n\n",dual[9]);




    printf("Bite die gewьnschte umrechnung auswдhlen!\n\n\a");
    printf("<1> Umrechnung in Dezimal\n");
    printf("<2> Umrechnung in Hexadezimal\n");
    printf("<3> Umrechnung in Oktal\n\n");

    printf("<4> Programm beenden\n\n");

    printf("Bite die gewьnschte umrechnung auswдhlen! < >\b\b");
    scanf("%d",& abfrage);

    switch(abfrage)
    {
    case 1: printf("\n\nAuswahl 1\n\n");

    Ergebnis = fDezimal(dual);

    break;

    case 2: printf("\n\nAuswahl 2\n\n");


    break;

    case 3: printf("\n\nAuswahl 3\n\n");

    break;

    case 4: printf("\n\nAuswahl 4\n\n");

    break;

    default: printf("\n\nUnbekannte Auswahl\n\n");
    }


    system("PAUSE");
    return 0;
    }


    ]

  • У меня 10 ошибок пишет .
    Я тоже сеицас C учу

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем wik ().

  • Цитата

    Со слов пользователя Iskatel
    Помогите мне найти ошыбку в программе.


    & dual
    & abfrage


    разве там пробелы терпимы?

  • Privet, ja konechno ne spez no vsцzhe mogu skazat esli funziju "int" fDezimal primenjaesh to v konze return nuzhen. I chto eta funzija int fDezimal vobshe delat' dolzhna?

  • привет,


    я C не учил, проходил маленько C++ паару лет тому назад;-)




    Здесь ты стартуеш функцию с первым числом дуал[0] в арраы?
    Или это без проблем?Скобки не нужны в этом цомпилере


    [case 1: printf("\n\nAuswahl 1\n\n");


    Ergebnis = fDezimal(dual);]




    Может тебе все Вариаблен сначала инитилизировать нуллем перед тем как их использовать ?Кто его знает что стоит в "Ergebnis "или wert после
    [
    int i,x,wert,Ergebnis,I;


    k primeru
    Ergebnis=0;
    wert=0;]


    Может мой совет и лажа, но наш дочент вседа требовал с нас такое.
    Что в принчипе уберегало нас от ошибок

  • Esli esho interesno, to tak pojdot...


    int fDezimal (int dual[])
    {
    int x=1,wert=0,Ergebnis=0;


    for(int i=0;i<10;i++)
    {
    wert = dual[i]* x;
    Ergebnis = Ergebnis + wert;
    x=x*2;
    }
    printf("%d\n\n",Ergebnis);
    return Ergebnis;
    }

  • Или так...


    int fDezimal (int dual[])
    {
    int Ergebnis=0;


    for(int i=0;i<10;i++)
    Ergebnis = Ergebnis + (dual[i]?pow(2,i): (int)0);
    }
    printf("%d\n\n",Ergebnis);
    return Ergebnis;
    }

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем I+L+Y+A ().