Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
#1

Неверно считает - C++

12.05.2011, 21:25. Просмотров 661. Ответов 12
Метки нет (Все метки)

множество всех чисел вида (2^(k)+3^(k)).
вот код:
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
#include "stdafx.h"
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <memory>
 
int main()
{
int N;
cout<<"N="; cin>>N;
int n, k;
n=log(N);
FILE * f;
f = fopen("answer.txt","r+");
int* arr = new int[n];
for (int i = 0; i < n; i++)
arr[i] = (pow(2,(k)) + pow(3,(k))); //множество всех чисел (2^(k)+3^(k))
{
if( arr[i] <= N) //сравнение с введенным числом
{
cout << arr[i] << " ";
fprintf(f, "%d", arr[i]); //запись результата
}
}
delete[] arr;
fclose(f);
return 0;
}
 Комментарий модератора 
1. Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.
2. Для студенческих задач по C++ предназначен раздел http://www.cyberforum.ru/cpp-beginners/.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2011, 21:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неверно считает (C++):

Разложение в ряд Тейлора (неверно считает) - C++
Задача: Вычислить и вывести на экран в виде таблицы значения функции F(x) на интервале с шагом dx с точностью до Eps. Каждая строка...

Какая здесь ошибка? Программа должна считать сумму в столбцах, но почему-то неверно считает - C++
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; main() { int S=0, a, Sum; for (int i = 1; i &lt;=3; i++) for (int j = 1; j &lt;=5; j++) { ...

Java, как переделать,неверно считает: Произвед.элементов в строках, которые не содержат отриц-х элементов? - C++
package lab_4; import java.util.Scanner; import java.math.*; public class Laba4 { public static void main(String arg) { ...

Компилируется неверно - C++
Пользователь вводит температуру. Ему показывают сообщение о состоянии организма. Например 39– труп. Вот, что я написала. Но какую-то...

Неверно вычисляется среднее - C++
Написать программу, которая вычисляет среднее арифметическое последовательности дробных чисел, вводимых с клавиатуры. После того, как будет...

Неверно вычисляется выражение - C++
Не до конца сделал программу.Суть в том в &quot;sbichne&quot; выводиться 0 в любом случае.До некоторых изменений всегда выводилось &quot;1&quot;...В чём...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
12.05.2011, 21:41 #2
ну и где ошибка? что пишет компилятор?
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
12.05.2011, 21:42  [ТС] #3
неправильно считает
возможно ошибка в массиве,но замучился искать
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
12.05.2011, 21:46 #4
k объявлена, используется, но не инициализирована
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
12.05.2011, 21:46  [ТС] #5
а можешь подправить код?
плз
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
12.05.2011, 21:49 #6
C++
1
arr[i] = (pow(2,(i)) + pow(3,(i)));
Видимо, так

Добавлено через 1 минуту
C++
1
2
3
for (int i = 0; i < n; i++)
{
arr[i] = (pow(2,(i)) + pow(3,(i)));
И скобку до, а не после
lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
12.05.2011, 21:58 #7
Добрый вечер! G++/Code::Blocks.
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
#include <iostream>
#include <stdio.h>
#include <math.h>
 
using namespace std;
int main()
{
int N;
cout<<"N=";
cin>>N;
 
int n1=log(N);
 
FILE * f;
f = fopen("answer.txt","w");
int* arr = new int[n1];
 
for (int i = 0; i < n1; i++)
{
    arr[i] = pow(2,i) + pow(3,i); //множество всех чисел (2^(k)+3^(k))
    if( arr[i] <= N) { //сравнение с введенным числом
        cout << arr[i] << " ";
        fprintf(f, "%3d", arr[i]); //запись результата
    }
}
delete[] arr;
fclose(f);
 
return 0;
}
Однако алгоритм можно улучшить, так как 2^n=2*2^(n-1). Тогда будет быстрей и без <math.h>
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
12.05.2011, 22:01 #8
а чему равно "k" ?
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
12.05.2011, 22:02  [ТС] #9
степень???
ничему просто посчитать множество всех таких чисел
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
12.05.2011, 22:09 #10
(pow(2,(k)) + pow(3,(k)))
я могу ошибаться но для того чтобы использовать функцию pow ей нунжно передать два параметра
double x; возводимое число
double y; степень числа x
в данном случае степень числа у вас неопределенна....
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
12.05.2011, 22:14  [ТС] #11
спасибо.тока он когда N=100 выводит 2,5,13,35, а должно быть еще 97

Добавлено через 4 минуты
все я понял просто надо было исправить:
int n1=log(N)+2;


lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
12.05.2011, 22:14 #12
2=2^0+3^0
5=2^1+3^1
13=2^2+3^2...
Skreen
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 52
13.05.2011, 13:56  [ТС] #13
[QUOTE=lamed;1642876]Добрый вечер! G++/Code::Blocks.
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
#include <iostream>
#include <stdio.h>
#include <math.h>
 
using namespace std;
int main()
{
int N;
cout<<"N=";
cin>>N;
 
int n1=log(N)+2; //для подсчета последнего числа
 
FILE * f;
f = fopen("answer.txt","w");
int* arr = new int[n1];
 
for (int i = 0; i < n1; i++)
{
    arr[i] = pow(2,i) + pow(3,i); //множество всех чисел (2^(k)+3^(k))
    if( arr[i] <= N) { //сравнение с введенным числом
        cout << arr[i] << " ";
        fprintf(f, "%3d", arr[i]); //запись результата
    }
}
delete[] arr;
fclose(f);
 
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2011, 13:56
Привет! Вот еще темы с ответами:

Что тут неверно? - C++
#include &lt;iostream&gt; #include &lt;locale&gt; using namespace std; int main() { int x1 , x2 , x3 , y1 , y2 , y3; ...

Неверно считывается условие - C++
Собственно программа, вычисляющая суммарную площадь множества четырёхугольников(заданных через 4 точки) внутри окружности с заданным...

Массив считывается неверно - C++
Скажите, пожалуйста, почему неправильно считывает? Ввожу: 1 2 3 4 5 2 3 5 6 7 1 3 4 5 3 4 3 6 2 3 6 5 4 3 2 Получаю: ...

Неверно считается логарифм - C++
c = x*x - 4 * x - 5; if (x &lt; 2) { if (pow(c , 1.0 / 3.0) &gt; 0) { y = log(c); cout &lt;&lt; &quot;y=&quot; &lt;&lt; y &lt;&lt; &quot; при x=&quot; &lt;&lt; x...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.05.2011, 13:56
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru