![Přidat otázku mezi oblíbené Přidat otázku mezi oblíbené](https://static.poradna.net/images/post/action/favorite.png)
Kalkulacka v C
Cauves.Mam mensi problem s Kalkulackou u Dev C++ v Projektu C delam tedka s Cckem a ne s C++ a nevim proc kdyz dam menu 2 3 4 tak se mi nabidne menu 1 a nevim proc to vynechava printf("Zadejte prvni cislo:"); nechapu proc
Kod je
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a;
int b;
int c;
int d;
int e;
int f;
printf("Vitejte v Programu Kalkulacka zde si muzete vypocitat co hrdlo raci. \nMuzete si vypocitat co potrebujete pomoci techto znaminek + - * /\na to pomoci menu.");
printf("Menu je nasledujici \n");
printf("Pro + zadejte 1 \n");
printf("Pro - zadejte 2 \n");
printf("Pro * zadejte 3 \n");
printf("Pro / zadejte 4 \n");
printf("Zvolte si menu:");
scanf("%d",&a);
if(a==1)
printf("Zadejte vase prvni cislo:");
scanf("%d",&b);
printf("Zadejte vase druhe cislo:");
scanf("%d",&c);
printf("Zadejte vase treti cislo:");
scanf("%d",&d);
printf("Vase menu bylo zvoleno na Scitani=+.\nA soucet techto cisel je: %d\n",b+c+d);
system("PAUSE");
return 0;
if(a==2)
printf("Zadejte vase prvni cislo:");
scanf("%d",&b);
printf("Zadejte vase druhe cislo:");
scanf("%d",&c);
printf("Zadejte vase treti cislo:");
scanf("%d",&d);
printf("Zadejte vase ctvrte cislo:");
scanf("%d",&e);
printf("Zadejte vase pate cislo:");
scanf("%d",&f);
printf("Vase menu bylo zvoleno na Odcitani=-.\nA Vase cislo ktere bylo odecteno od prvniho je: %d\n",b-c-d-e-f);
system("PAUSE");
return 0;
if(a==3)
printf("Zadejte vase prvni cislo:");
scanf("%d",&b);
printf("Zadejte vase druhe cislo:");
scanf("%d",&c);
printf("Zadejte vase treti cislo:");
scanf("%d",&d);
printf("Zadejte vase ctvrte cislo:");
scanf("%d",&e);
printf("Vase menu bylo zvoleno na Nasobeni=*.\nBylo zjisteno ze v nasobeni vzniklo cislo: %d\n",b*c*d*e);
system("PAUSE");
return 0;
if(a==4)
printf("Zadejte vase prvni cislo:");
scanf("%d",&b);
printf("Zadejte vase druhe cislo:");
scanf("%d",&c);
printf("Vase menu bylo zvoleno na Kraceni=/.\nBylo zjisteno pri kraceni ze cislo je: %d\n",b/c);
system("PAUSE");
return 0;
}
Změna předmětu, původně: Kalkulacka (host) (los)
Protože ti chybí úplné základy.
http://docs.linux.cz/programming/c/c_saloun/kap06. htm
Ak za if nemáš blok kódu v zložených zátvorkách, tak sa vzťahuje len na nasledujúci príkaz. Uzavri to do blokov, odsadzuj normálne kód a ušetríš si zbytočné problémy.
ako poznamenal los, chyba ti blok pre prikazy IF - to je hlavny dovod nefunkcnosti.
Co ti ale este je nutne vytknut, ze pouzivas 4x rovnaky blok prikazov. Nie je lepsie po vybere znamienka hned pytat cisla nutne pre vypocet a potom uz podla vybraneho znamienka urobit vypocet?
Dalsia vec, nemusis kombinovat stale printf so scanf. Scanf dokaze pokial si este dobre spominam aj vypisovat.
Taktiez mozes tie 4 podmienky nahradit CASEom. System pause a return 0 tiez staci dat len na koniec programu pokial vytvoris tie bloky pre IF alebo ich nahradis caseom.
Muzes to upravit cele? Nevim takhle co se tim mylsi hlavicka apod.