Конвертер валют: Проходит только один цикл - C (СИ)
Формулировка задачи:
Конвертер валют. Если выберу "б", все равно проходит цикл а. Что не так?
#include <stdio.h> int main(void){ char a,b,c; a= 'a'; b='b'; c='c'; int ab, ac, ba,bc, ca,cb; int zl, dol, eu; int sum1, sum2, sum3, sum4, sum5, sum6; printf("Program konwertacji walut"); printf("Wybierz walute dla konwertacji:\n"); printf("a.Zlotowki\n"); printf("b.Dolary\n"); printf("c.Euro\n"); if(scanf("%c", &a)){ printf("Wybierz w co konwertowac:\n"); printf("1.dolary\n"); printf("2.euro\n"); scanf("%i", &zl); if(zl == 1){ printf("Podaj kwote w zlotych:\n"); scanf("%i",&ab); sum1 = ab*3.72; printf("%i w dolarach : %i", ab, sum1); } else if(zl == 2){ printf("Podaj kwote w zlotych:\n"); scanf("%i", &ac); sum2 = ac*4.23; printf("%i w euro : %i", ac, sum2); } else{ printf("Niepoprawnie !"); } } else if(scanf("%c", &b)){ printf("Wybierz w co konwertowac:\n"); printf("3.zlotowki\n"); printf("4.euro\n"); scanf("%i", &dol); if(dol == 3){ printf("Podaj kwote w dolarach:\n"); scanf("%i", &ba ); sum3 = ba*3.71; printf("%i w zlotowkach : %i", ba, sum3); } else if(dol == 4){ printf("Podaj kwote w dolarach:\n"); scanf("%i", &bc); sum4 = bc * 1.13; printf("%i w euro : %i", bc, sum4); } else{ printf("Niepoprawnie !"); } } else if(scanf("%c", &c)){ printf("Wybierz w co konwertowac:\n"); printf("1.zlotowki\n"); printf("2.dolary\n"); scanf("%i", &eu); if(eu == 1){ printf("Podaj kwote w euro:\n"); scanf("%i",&ca); sum5 = ca*4.23; printf("%i w zlotowkach : %i", ca, sum5); } else if(eu == 2){ printf("Podaj kwote w euro:\n"); scanf("%i",&cb); sum6 = cb*1.13; printf("%i w dolarach : %i", cb, sum6); } else{ printf("Niepoprawnie !"); } } else{ printf("Prosze podac jedna litere: "); } return(0); }
Решение задачи: «Конвертер валют: Проходит только один цикл»
textual
Листинг программы
#include <stdio.h> int main(void) { char a; int b, zl; double sum; printf(" Program konwertacji walut.\n"); printf(" Wybierz walute dla konwertacji:\n"); printf("a.Zlotowki\n"); printf("b.Dolary\n"); printf("c.Euro\n"); scanf(" %c", &a); if(a == 'a'){ printf("Wybierz w co konwertowac:\n"); printf("1.dolary\n"); printf("2.euro\n"); scanf(" %i", &zl); if(zl == 1){ printf("Podaj kwote w zlotych:\n"); scanf(" %i",&b); sum = b * 3.72; printf("%i w dolarach : %g\n", b, sum); } if(zl == 2){ printf("Podaj kwote w zlotych:\n"); scanf(" %i", &b); sum = b * 4.23; printf("%i w euro : %g\n", b, sum); } if(zl != 1 && zl != 2) printf("Niepoprawnie !"); } if(a == 'b'){ printf("Wybierz w co konwertowac:\n"); printf("1.zlotowki\n"); printf("2.euro\n"); scanf(" %i", &zl); if(zl == 1){ printf("Podaj kwote w dolarach:\n"); scanf("%i", &b); sum = b * 3.71; printf("%i w zlotowkach : %g\n", b, sum); } if(zl == 2){ printf("Podaj kwote w dolarach:\n"); scanf(" %i", &b); sum = b * 1.13; printf("%i w euro : %g\n", b, sum); } if(zl != 1 && zl != 2) printf("Niepoprawnie !"); } if(a == 'c'){ printf("Wybierz w co konwertowac:\n"); printf("1.zlotowki\n"); printf("2.dolary\n"); scanf(" %i", &zl); if(zl == 1){ printf("Podaj kwote w euro:\n"); scanf(" %i", &b); sum = b * 4.23; printf("%i w zlotowkach : %g\n", b, sum); } if(zl == 2){ printf("Podaj kwote w euro:\n"); scanf(" %i",&b); sum = b * 1.13; printf("%i w dolarach : %g\n", b, sum); } if(zl != 1 && zl != 2) printf("Niepoprawnie !"); } if(a < 'a' || a > 'c') printf("Prosze podac jedna litere:\n "); return(0); }
Объяснение кода листинга программы
- Объявление переменных: char a; int b, zl; double sum;
- Вывод приветствия и списка валют:
printf(
Program konwertacji walut.\n
); printf(Wybierz walute dla konwertacji:\n
); printf(a.Zlotowki\n
); printf(b.Dolary\n
); printf(c.Euro\n
); - Считывание выбранной валюты:
scanf(
%c
, &a); - Проверка выбранной валюты и вывод соответствующего сообщения:
if(a == 'a'){
printf(
Wybierz w co konwertowac:\n
); printf(1.dolary\n
); printf(2.euro\n
); scanf(%i
, &zl); } if(a == 'b'){ printf(Wybierz w co konwertowac:\n
); printf(1.zlotowki\n
); printf(2.euro\n
); scanf(%i
, &zl); } if(a == 'c'){ printf(Wybierz w co konwertowac:\n
); printf(1.zlotowki\n
); printf(2.dolary\n
); scanf(%i
, &zl); } - Проверка выбранной валюты и выполнение соответствующих действий:
if(a == 'a' && zl == 1){
printf(
Podaj kwote w zlotych:\n
); scanf(%i
, &b); sum = b 3.72; printf(%i w dolarach : %g\n
, b, sum); } if(a == 'a' && zl == 2){ printf(Podaj kwote w zlotych:\n
); scanf(%i
, &b); sum = b 4.23; printf(%i w euro : %g\n
, b, sum); } if(a == 'b' && zl == 1){ printf(Podaj kwote w dolarach:\n
); scanf(%i
, &b); sum = b 3.71; printf(%i w zlotowkach : %g\n
, b, sum); } if(a == 'b' && zl == 2){ printf(Podaj kwote w dolarach:\n
); scanf(%i
, &b); sum = b 1.13; printf(%i w euro : %g\n
, b, sum); } if(a == 'c' && zl == 1){ printf(Podaj kwote w euro:\n
); scanf(%i
, &b); sum = b 4.23; printf(%i w zlotowkach : %g\n
, b, sum); } if(a == 'c' && zl == 2){ printf(Podaj kwote w euro:\n
); scanf(%i
,&b); sum = b 1.13; printf(%i w dolarach : %g\n
, b, sum); } - Проверка корректности введенных данных:
if(a < 'a' || a > 'c')
printf(
Prosze podac jedna litere:\n
); - Завершение программы: return(0);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д