Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для \\max
4 / 4 / 0
Регистрация: 19.05.2012
Сообщений: 19

Простейшая прога но не хочет компилиться

31.05.2012, 09:44. Показов 1222. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int main()
{
    int i ;
    scanf("%d",&i);
    int kol = 1;
    double d = i;
    for(int j = 0;  ; j++)
    {
        d = d / 10;
        if( d < 1 ) break;
        else kol++;
    }
    int ost;
    int sum;
    printf( "%d\n", kol );
    for(int l = 0; l < kol ; l++)
    {
        ost = i % pow(10,kol-l-1);
        sum += (i - ost) / pow(10,kol-l-1);
        i = ost;
    }
    printf("%d",sum);
    getch();
    return 0;
}
Компилятор ругается на эту строку
ost = i % pow(10,kol-l-1);
пишет :
Illegal use of floating point in function main()
Скажите пожалуйста в чем проблема?
Заранее благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.05.2012, 09:44
Ответы с готовыми решениями:

Элементарная прога. Не компилиться. Где напортачил?
Здрасьте, господа в джинсах и потёртых свитрах :) В общем задали в универе написать программу для решения уравнения. В C++ я не силён,...

Java не хочет компилиться (
Не пойму в чем дело. Java обе 8-е Путь прописан Но при этом javac - не является внутренней или внешней командой А при компиляции...

Простейшая прога!
Привет всем, имеется проблема с написанием простейшей проги. Вот формула: x=-(C+2A+4B+B) Требуется разработать программу реализующую...

13
 Аватар для Лжец
34 / 33 / 6
Регистрация: 13.12.2011
Сообщений: 107
31.05.2012, 09:51
C++
1
ost =  i % (int)pow(10,kol-l-1);
Но это плохое решение. Ругается на то, что ты пытаешься поделить по модулю тип данных double, а этого сделать нельзя.
1
 Аватар для \\max
4 / 4 / 0
Регистрация: 19.05.2012
Сообщений: 19
31.05.2012, 10:02  [ТС]
Цитата Сообщение от Лжец Посмотреть сообщение
Но это плохое решение. Ругается на то, что ты пытаешься поделить по модулю тип данных double, а этого сделать нельзя.
я делю int на 10 в степени (kol-l-1)
при чём тут double?
0
 Аватар для defer
577 / 256 / 18
Регистрация: 29.11.2010
Сообщений: 868
31.05.2012, 10:07
автоматическое приведение типов

pow объявлен так pow(double _X, double _Y) и результат приводится к double
1
 Аватар для Лжец
34 / 33 / 6
Регистрация: 13.12.2011
Сообщений: 107
31.05.2012, 10:09
Единственное, что могу сказать, функция pow() перегружена в том числе и на double, возможно в связи с какими-то известными компилятору "соображениями", он использует именно её.

Лично у меня, при компиляции вашего кода вышло следующее:

error C2297: '%' : illegal, right operand has type 'double'
Отсюда и вывод об ошибке и ее решении.

Upd:
Собственно вам уже ответили.
0
 Аватар для \\max
4 / 4 / 0
Регистрация: 19.05.2012
Сообщений: 19
31.05.2012, 10:16  [ТС]
Есть всё сделал работает пришлось еще чуток подкоректировать код и получилось

Добавлено через 1 минуту
Заменил предыдущую строку таким видом и поменял тип одной переменной с инта на дабл и пошло
p = pow(10,kol-l-1);
ost = i % p;


Еще раз всем спасибо!
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,239
31.05.2012, 10:24
Почему-то у многих возведение целого числа в целую степень
выполняется через функцию pow(), которая возводит действительное число
в действительную стемень. Зачем издеваться над компьютером!
C++
1
2
3
4
5
6
7
int pown(int n,int m)
{
    int r=1;
    for(int i=0;i<m;i++)
         r*=n;
    return r;
}
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
31.05.2012, 10:47
Цитата Сообщение от \\max Посмотреть сообщение
я делю int на 10 в степени (kol-l-1)
при чём тут double?
при типе функции.

Добавлено через 2 минуты
Цитата Сообщение от defer Посмотреть сообщение
и результат приводится к double
бред сивой кобылы, если результат подставляется в интовый оператор, то приводиться к double уже не может. Да и если бы приводился, то компилятор бы не ругался: он ругается именно на то, что привести не может. Результат уже double, а приводятся параметры функции.

Добавлено через 3 минуты
Цитата Сообщение от \\max Посмотреть сообщение
Заменил предыдущую строку таким видом и поменял тип одной переменной с инта на дабл и пошло
p = pow(10,kol-l-1);
ost = i % p;
то есть i теперь тоже double? Ещё хуже. Тебе надо избавиться от даблов, а ты плодишь их на пустом месте. Перегрузи функцию на
C++
1
int pow(int, unsigned int)
.

Добавлено через 2 минуты
Цитата Сообщение от zss Посмотреть сообщение
C++
1
2
3
4
5
6
7
int pown(int n,int m)
{
  int r=1;
  for(int i=0;i<m;i++)
    r*=n;
  return r;
}
не правильно: если показатель знаковый, то значение степени может быть и дробным. Надо хотя бы так:
C++
1
2
3
4
5
6
7
8
9
int pown(int a, unsigned int n)
{
 int r;
 for(r=1; n>0; --n)
 {
  r*=a;
 }
 return r;
}
.
1
 Аватар для \\max
4 / 4 / 0
Регистрация: 19.05.2012
Сообщений: 19
31.05.2012, 10:49  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int main()
{
    int i ;
    scanf("%d",&i);
    int kol = 1;
    double d = i;
    for(int j = 0;  ; j++)
    {
        d = d / 10;
        if( d < 1 ) break;
        else kol++;
    }
    int ost;
    double sum;
    int p;
 
    printf( "%d\n", kol );
    for(int l = 0; l < kol ; l++)
    {
        p = pow(10,kol-l-1);
        ost = i % p;
        sum += (i - ost) / p;
        i = ost;
    }
    printf("%lf",sum);
    getch();
    return 0;
}
вот код
Цитата Сообщение от taras atavin Посмотреть сообщение
то есть i теперь тоже double?
нет конечно зачем это делать?? я переменную sum в дабл запилил
0
31.05.2012, 11:23

Не по теме:

\\max, можно увидеть твоё задание к программе?

0
 Аватар для \\max
4 / 4 / 0
Регистрация: 19.05.2012
Сообщений: 19
31.05.2012, 11:27  [ТС]
нжно посчитать сумму цифр с каких состоит число например: 1927 =1+9+2+7 = 19
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 11:29
Все делается на много проще:
C++
1
2
3
4
while ( number != 0 ) {
   sum += number % 10;
   number /= 10;
}
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.05.2012, 11:49
Цитата Сообщение от \\max Посмотреть сообщение
нжно посчитать сумму цифр с каких состоит число например: 1927 =1+9+2+7 = 19
- это задание на 5-ть строк кода

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    int val;
    while(true)
    {
        cout<<"Enter value : ";cin>>val;
        if(val < 0)
            val = -1*val;
        int sum = val%10;
        while(val /= 10)
            sum += val%10;
        cout<<"Digits sum : "<<sum<<endl;
    }
    return 0;
}
PS:Toshkarik, всё норм только не забываем о том что можем ввести и отрицательное тогда разряды будут идти с минусом
Миниатюры
Простейшая прога но не хочет компилиться  
1
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 11:52
Это был всего лишь намек так сказать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2012, 11:52
Помогаю со студенческими работами здесь

простейшая прога(
Я ток начал учить асм и вот трабл в самом начале. Знакомый скинул ,по его словам, простейшую прогу. А она у меня не компилится(. Вот...

Простейшая прога. Сумма и произведение чисел.
Помогите студенту не чего не понимающему в Delphi c простейшей задачей Разработать программу которая вычисляет сумму и произведение...

Работа со строками . Простейшая прога выдаёт ошибки (
код: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; int main() { char s1, char s2; ...

Учу классы. Не запускается простейшая прога.Не могу понять причину
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class MyDogs{ public: int...

не хочет выполнять действие прога
всем hi , столкнулся с такой проблемой ... делаю авторизацию на сайте с гет запросом и сразу получаю исх код страницы, в это исх коде ищу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru