Другие языки программирования и технологии
Помогите с задачей С++ Упростить обычную дробь(с клавиатуры вводится числитель и знаменатель)
#include "stdafx.h" #include <windows.h> #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; void main() {SetConsoleOutputCP(1251); int i; //счетчик int a,b; //числитель и знаменатель for(i=1000;i>1;i--) if(a%i==0 && b%i==0) (a=a/i; b=b/i;) { } Где ошибка чего неработает?
Омг, знакомые лица) )
Во-первых, нету ввода переменных. Нельзя использовать переменные, если они не обьявлены. .
После
int a,b; //числитель и знаменатель
нужно вставить:
cout<<"Введите a: ";
cin>>a;
cout<<"Введите b: ";
cin>>b;
Затем это:
(a=a/i; b=b/i;)
нужно заменить на
a=a/i; b=b/i;
Потом добавить нахождение большего числа из двух, и вписать его вместо 1000 в for'е:
if(a>b)max=a;
else max=b;
ну и дописать вывод результата в конце.
====================================================
В общем, должно получиться что-то вроде этого:
void main()
{
SetConsoleOutputCP(1251);
int i; //счетчик
int a,b; //числитель и знаменатель
int max; //наибольшее число
cout<<"Введите a: ";
cin>>a;
cout<<"Введите b: ";
cin>>b;
for(i=max;i>1;i--)
if(a%i==0 && b%i==0)
{
a=a/i; b=b/i;
}
//выводим результат
cout ...;
}
Во-первых, нету ввода переменных. Нельзя использовать переменные, если они не обьявлены. .
После
int a,b; //числитель и знаменатель
нужно вставить:
cout<<"Введите a: ";
cin>>a;
cout<<"Введите b: ";
cin>>b;
Затем это:
(a=a/i; b=b/i;)
нужно заменить на
a=a/i; b=b/i;
Потом добавить нахождение большего числа из двух, и вписать его вместо 1000 в for'е:
if(a>b)max=a;
else max=b;
ну и дописать вывод результата в конце.
====================================================
В общем, должно получиться что-то вроде этого:
void main()
{
SetConsoleOutputCP(1251);
int i; //счетчик
int a,b; //числитель и знаменатель
int max; //наибольшее число
cout<<"Введите a: ";
cin>>a;
cout<<"Введите b: ";
cin>>b;
for(i=max;i>1;i--)
if(a%i==0 && b%i==0)
{
a=a/i; b=b/i;
}
//выводим результат
cout ...;
}
Найти наибольший общий делитель числителя и знаменателя, и разделить их на него.
Алгоритм_Евклида
Алгоритм_Евклида
1)Проверить, если числитель больше знаменателя, то выделить из дроби целую часть.
2)Теперь числитель (а) меньше знаменателя (b).
for(int i=a ; i >1; i --)
{
if(a % i ==0 && b % i ==0)
{
a=a/ i ;
b=b/ i;
i ==a; // а поменялось, по-этому начинаем отсчёт цикла с нового значения
}
}
2)Теперь числитель (а) меньше знаменателя (b).
for(int i=a ; i >1; i --)
{
if(a % i ==0 && b % i ==0)
{
a=a/ i ;
b=b/ i;
i ==a; // а поменялось, по-этому начинаем отсчёт цикла с нового значения
}
}
А меня C++ только раздражает.
Еще одна фигурная скобка вконце
А почему цикл начинается с 1000? Может он должен начинаться с самого большого числа? Сначала находим, что больше, числитель или знаменатель, затем начинаем отсчет с этого числа.
if(a>b){
int ii = a;
}
else{
int ii = b;
}
и дальше считаем от ii
for(i=ii;i>1;i--){
,,,,
}
if(a>b){
int ii = a;
}
else{
int ii = b;
}
и дальше считаем от ii
for(i=ii;i>1;i--){
,,,,
}
Похожие вопросы
- С клавиатуры вводятся числа, пока не будет введен ноль, вывести числа в обратно порядке. С++ Голову сломал !!!
- 144. С клавиатуры вводится шестизначный номер трамвайного билета. Определить, является ли билет счастливым.
- Как в индизайне в тексте прописать числитель и знаменатель (через черточку) , то есть к примеру a разделить на b?
- Помогите пожалуйста! Задача по программированию. ВВОдится 1 число n. ВОзможны 2 действия над ним : 1)вычесть 1
- нужно решение с++. С клавиатуры вводится 13 целых чисел, найти позиции всех простых чисел.
- С клавиатуры вводится 4 числа. Вывести на экран сумму двух наименьших
- Объявление массива С++. С клавиатуры вводится число n, потом надо задать массив nxn. Как это сделать?
- С клавиатуры вводится целое число от 1 до 1000 обозначающую сумму в рублях. Программа должна печатать эту сумму прописью
- С клавиатуры вводится n – длина ступенчатого массива.
- Народ, слезно прошу помочь решить задачу по информатике (програмирование), я просто ноль в этом(((