Ввести заданное действительное число, записанное по правилам языка и присвоить его действительной переменной - C (СИ)
Формулировка задачи:
Используя только символьный ввод, то есть функцию scanf ("% c", & s), где s - переменная типа char,
ввести заданное действительное число, записанное по правилам языка С, и присвоить его действительной переменной х.
Решение задачи: «Ввести заданное действительное число, записанное по правилам языка и присвоить его действительной переменной»
textual
Листинг программы
#include <stdio.h> int main(int argc, char* argv[]) { double mc,md,pd,res; int p,i,sg,psg,pdot,err; char c; char S[30]; for (i=0; i<30; i++) S[i]=0; scanf("%s",S); mc=0.0; md=0.0; sg=1; pd=1; psg=0; pdot=0; err=0; for (i=0; i<30; i++) { c=S[i]; switch (c) { case 0: break; case '-' : if (psg |= 0) { printf("Signum duplicate!\n"); err=1; break; } psg=1; sg=-1; break; case '+' : if (psg |= 0) { printf("Signum duplicate!\n"); err=1; break; } psg=1; sg=1; break; case '.' : if (pdot |= 0) { printf("Dot duplicate!\n"); err=2; break; } pdot=1; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (pdot == 0) mc=mc*10+(double)(c-'0'); else { md=md*10+(double)(c-'0'); pd=pd/10; } break; default: printf("Bad symbol %d !\n",c); err=3; break; } if (err |= 0) break; } if (err == 0) { res=(double)sg * (mc+md*pd); printf("%f OK!\n",res); } else printf("Error!\n"); return 0; }
Объяснение кода листинга программы
- Ввод заданного действительного числа с помощью функции scanf.
- Переменные для хранения введенного числа и его отдельных частей: mc, md, pd, sg, psg, pdot, err.
- Массив символов S[30] для хранения введенной строки.
- Цикл for для обработки каждого символа в строке.
- Оператор switch для определения текущего символа и его значения.
- Оператор break для выхода из цикла switch при обнаружении ошибки.
- Условные операторы if для проверки наличия ошибок и выхода из цикла при обнаружении ошибки.
- Вычисление окончательного результата с помощью формулы (double)sg (mc+mdpd).
- Вывод результата на экран с помощью функции printf.
- Возврат значения 0 для успешного выполнения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д