• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kod w języku C nie działa poprawnie.

Object Storage Arubacloud
0 głosów
260 wizyt
pytanie zadane 14 listopada 2020 w C i C++ przez Empire Nowicjusz (140 p.)

Cześć, muszę wykonać takie zadanie: . Napisz program obliczający w zależności od wyboru użytkownika pole koła, trójkąta lub kwadratu dla podanych wymaganych parametrów. Mój problem dotyczy tego, że jako użytkownik wpisuję literkę na przykład literkę  "k", aby wykonała się pierwsza instrukcja warunkowa z mojego kodu, to zamiast tego wykonuje się instrukcja else, która powinna być wykonywana po użyciu każdej litery oprócz "k,l,m". Dzięki za pomoc z góry.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double kolo(double r)
{


double pole_kola=M_PI*r*r;
return pole_kola;
}
double trojkat(double a, double h)
{


double pole_trojkata=(a*h)/2;
return pole_trojkata;
}
double kwadrat(double a)
{

double pole_kwadratu=a*a;
return pole_kwadratu;
}
int main()
{
    double pole_kola,pole_trojkata,pole_kwadratu;
    double r,a,h;
    char znak;
    scanf("%s",&znak);
    if((kolo(r))==('k'))
      {
        scanf("%lf",r);
        printf("Wybrano pole kola %f\n",pole_kola);
      }
    else if((trojkat(a,h))==('l'))
        {
        scanf("%lf",a);
        scanf("%lf",h);
        printf("Wybrano pole trojkata %f\n",pole_trojkata);
        }
    else if((kwadrat(a))==('m'))
         {
         scanf("%lf",a);

         printf("Wybrano pole kwadratu %f\n",pole_kwadratu);
         }
    else
        printf("Nie wybrano zadnej figury");

    return 0;
}

 

komentarz 14 listopada 2020 przez overcq Pasjonat (21,710 p.)

Porównujesz funkcje zamiast zmiennej znak.

if( znak == 'k' )
{
    scanf("%lf",r);
    printf("Wybrano pole kola %f\n",kolo(r));
}
komentarz 14 listopada 2020 przez Oscar Nałogowiec (29,320 p.)

jak już to

    scanf("%lf", &r);

 

1 odpowiedź

+1 głos
odpowiedź 14 listopada 2020 przez Wiciorny Ekspert (270,190 p.)
if((kolo(r))==('k'))

w tej lini jak kolejnych jest błąd, 
porównujesz wartość zwarcaną przez funkcje kolo, dla promienia R.... 
jest to wartość typu double według twojej definicji implementacyjnej  a nie 'k'

double kolo(double r)
{
 
 
double pole_kola=M_PI*r*r;
return pole_kola;
}

 

Podobne pytania

0 głosów
2 odpowiedzi 310 wizyt
pytanie zadane 20 października 2016 w C i C++ przez Dawid Zając Nowicjusz (150 p.)
0 głosów
1 odpowiedź 170 wizyt
pytanie zadane 19 sierpnia 2022 w C i C++ przez benny13 Obywatel (1,150 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,962 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...