Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
web-raised
7 / 7 / 0
Регистрация: 25.03.2013
Сообщений: 73
#1

Пожалуйста : небольшая ошибка в цикле! - C++

05.11.2013, 12:17. Просмотров 494. Ответов 15
Метки нет (Все метки)

Доброго утра!
Помогите, пожалуйста. Вот код:
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
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
int main()
{
    int k,i,j,n,tmp,score,score1,score2,tmp_score1,tmp_score2,h,w,tmp_score;
    cin>>k;
    score1=score2=tmp_score1=tmp_score2=0;
    n=1;
    score=k*k;
    for (i=1;i<k/2;i++) {
        for (j=n;j<=k;j++) {
            h=i;
            w=j;
            tmp_score1=abs(h-w);
            tmp_score2=k-(h*w);
            tmp_score=tmp_score1+tmp_score2;
            if (tmp_score<score) {
                                 score=tmp_score;
                                 cout<<h<<" "<<w<<"   ";
                                 }            
        }
        n++;
    }
    cout<<score;
    getch();
}
Проблема в том, что во втором цикле числа почему-то не начинаются с i , а с i+2.
Ввод: 11
Вывод:1 1 2 2 2 3 2 5 2 6 2 7 2 8 2 9 2 10 2 11 3 6 (!!!, почему не 3 3 3 4?) 3 7 ....3 11 4 8(!!!, почему не 4 4 4 5)
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 12:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пожалуйста : небольшая ошибка в цикле! (C++):

Небольшая ошибка в коде - C++
помогите, как записать выделенную область на рисунке я записал : Z= exp((-c*pow(x,x)+sqrt(x+a)) // (x-sqrt(fabs(x-b)))); но препод...

Совсем небольшая ошибка - C++
Помогите найти небольшую ошибку в проге, вот её код #include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; float Fact(int n) { ...

Небольшая ошибка в программе - C++
Я полный новичок в c++, написал программу, которая проверяет, какое число больше, первое, или второе. #include &lt;iostream&gt; using...

небольшая ошибка в чем дело? - C++
не компилится данная прога в с++ выдает error C2447: '{' : missing function header (old-style formal list?) в ms visual studio 2008 ...

Пожалуйста покажите где ошибка и как ее исправить. Пожалуйста - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #include...

Ошибка в цикле - C++
Суть задачи: Разработать программу для приближенного вычисления величины y=Ʃ(1/((2*n+1)*(2*n-1))) , n=1,2,3,... Процесс вычисления...

15
web-raised
7 / 7 / 0
Регистрация: 25.03.2013
Сообщений: 73
05.11.2013, 12:20  [ТС] #2
Вот фото вывода:
0
Миниатюры
Пожалуйста : небольшая ошибка в цикле!  
Ilot
Модератор
Эксперт С++
1825 / 1183 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
05.11.2013, 12:40 #3
Во-первых, подсократим немного код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
    int k,score, tmp_score;
    cin>>k;
    score=k*k;
    for (int i=1;i<k/2;i++) {
        for (int j=i;j<=k;j++) {
            tmp_score=k + abs(i-j) - (i*j);
            if (tmp_score<score)
            {
                score=tmp_score;
                cout << i << " " << j << " ";
            }
        }
    }
    cout << score << endl;
    system("pause");
    return 0;
}
А вот теперь хотелось бы узнать, что вы вычисляете так как мне увы ничего не понятно...
0
web-raised
7 / 7 / 0
Регистрация: 25.03.2013
Сообщений: 73
05.11.2013, 12:42  [ТС] #4
Задача Mcode Маємо К квадратних плиток. Із них потрібно викласти прямокутник висотою H та шириною W плиток. Варіантів, як ви розумієте, чимало. Але кожен прямокутник має свій код. Цей код вираховується як сума двох величин:

Квадратоподібність=| H-W |

Економічність=К-H*W

Потрібно знайти мінімально можливий код прямокутника.

Технічні умови. Програма Mcode читає з пристрою стандартного введення (клавіатури) єдине число К (1 ≤ K ≤ 106 ). Програма виводить на пристрій стандартного виведення (екран) єдине число – мінімально можливий код прямокутника.

Приклади

Введення


Виведення


Коментар

11


2


Прямокутник 3*3

2


1


Прямокутник 2*1

20


1


Прямокутник 4*5
0
web-raised
7 / 7 / 0
Регистрация: 25.03.2013
Сообщений: 73
05.11.2013, 12:44  [ТС] #5
Сверху задача.
cout << i << " " << j << " "; это для проверки
0
Миниатюры
Пожалуйста : небольшая ошибка в цикле!  
web-raised
7 / 7 / 0
Регистрация: 25.03.2013
Сообщений: 73
05.11.2013, 12:47  [ТС] #6
Ilot, Там некоторое лишнее. Например n++ после первого цикла это для експеримента. пробовал заменять , чтобы не j=i , а паралельно i++ вести n++ и уже j=n.
0
Ilot
Модератор
Эксперт С++
1825 / 1183 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
05.11.2013, 12:49 #7
Так-с смотрите при i = 3 j = 11 score = -14...
при i = 4 j = 7 score = -14...
и только при i = 4 j = 8 score = -17
Т.е. tmp_score<score. Какие вопросы?
Цитата Сообщение от web-raised Посмотреть сообщение
Ilot, Там некоторое лишнее. Например n++ после первого цикла это для експеримента. пробовал заменять , чтобы не j=i , а паралельно i++ вести n++ и уже j=n.
Уже убрал...
0
web-raised
7 / 7 / 0
Регистрация: 25.03.2013
Сообщений: 73
05.11.2013, 12:51  [ТС] #8
Там много лишнего:
n++
cout<<h<<" "<<w<<" ";
Всё для проверки.
Первая задача на рисунке.
0
Миниатюры
Пожалуйста : небольшая ошибка в цикле!  
web-raised
7 / 7 / 0
Регистрация: 25.03.2013
Сообщений: 73
05.11.2013, 12:54  [ТС] #9
Ilot, Сума i+j не должна выходить за K плиток. Ошибочка. Код только додатний.
Поставить чтобы делалось вычисление кода в условии (if (i+j)<=k) {} ) ?
0
Ilot
Модератор
Эксперт С++
1825 / 1183 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
05.11.2013, 12:59 #10
Сперва был дан код, а об условиях задачи ничего не говорилось.
Вы бы не могли перевести сей трактат на великий могучий, а то я в иностранных языках как енот полоскун в квантовой электродинамике...
1
SatanaXIII
05.11.2013, 13:11
  #11
 Комментарий модератора 
web-raised, пункт 5.5 Правил: Нельзя дублировать темы.

Во-вторых (пункт 1.4) официальными языками форума являются русский и английский языки. Вы конечно вольны писать и каком-либо другом языке, но это существенно снижает вероятность ответа на заданный в теме вопрос.
0
web-raised
7 / 7 / 0
Регистрация: 25.03.2013
Сообщений: 73
05.11.2013, 18:43  [ТС] #12
Имеем К квадратных плиток. Из них нужно выложить прямоугольник высотой H и шириной W плиток. Вариантов , как вы понимаете , немало. Но каждый прямоугольник имеет свой ​​код. Этот код вычисляется как сумма двух величин :

Квадратоподибнисть = | H - W |

Экономичность = К - H * W

Нужно найти минимально возможное код прямоугольника .

Технические условия. Программа Mcode читает с устройства стандартного ввода (клавиатуры ) единственное число K ( 1 ≤ K ≤ 106). Программа выводит на устройство стандартного вывода (экран) единственное число - минимально возможный код прямоугольника .
Ввод и вывод уже ясны.

Добавлено через 55 секунд
Ilot, Прямокутник=Прямоугольник

Добавлено через 46 минут
up!

Добавлено через 1 час 35 минут
up!

Добавлено через 21 минуту
Помогите же!
0
SatanaXIII
Супер-модератор
Эксперт С++
5666 / 2711 / 255
Регистрация: 01.11.2011
Сообщений: 6,635
Завершенные тесты: 1
06.11.2013, 09:47 #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
#include <iostream.h>
 
int main()
{
int k;
cin >> k;
 
int squaresidb4vsllvbls, economy, code=k;
 
for(int i=k; i>0; i--)
  {
  if(!(k%i))
    {
    squaresidb4vsllvbls = abs(i-k/i);
    economy = k - i * k/i;
    if(code > squaresidb4vsllvbls + economy)
      code = squaresidb4vsllvbls + economy;
    }
  }
cout << "Min code = " << code << endl;
cin.ignore(2);
return 0;
}
С вас пиво.
0
web-raised
7 / 7 / 0
Регистрация: 25.03.2013
Сообщений: 73
06.11.2013, 10:27  [ТС] #14
SatanaXIII, Простите , но задача поменяна в корне и решена не верно. У меня она верна, а нужно всего лишь устранить ошибку в циклах. Там нужно вот (на картинке):
0
Миниатюры
Пожалуйста : небольшая ошибка в цикле!  
SatanaXIII
Супер-модератор
Эксперт С++
5666 / 2711 / 255
Регистрация: 01.11.2011
Сообщений: 6,635
Завершенные тесты: 1
06.11.2013, 10:40 #15
Цитата Сообщение от web-raised Посмотреть сообщение
задача поменяна в корне
Вот хотелось бы услышать формулировку.
Цитата Сообщение от web-raised Посмотреть сообщение
но задача поменяна в корне и решена не верно
Решена неверно или не подходит под нынешнее условие?
Цитата Сообщение от web-raised Посмотреть сообщение
Там нужно вот (на картинке)
Это ни разу непонятно как именно нужно.
0
06.11.2013, 10:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2013, 10:40
Привет! Вот еще темы с ответами:

Ошибка в цикле while - C++
//--------------------------------------------------------------------------- #pragma hdrstop #include &lt;locale&gt; #include &lt;stdio.h&gt; ...

Ошибка в цикле - C++
Здравствуйте. Нужно вычислить факториал неотрицательного числа. К примеру: n! = n * (n - 1) * (n - 2) * ... (для значений n &gt; 1) ...

Ошибка в цикле - C++
Суть программы: создаёт динамический список, каждый новый элемент списка заносится в конец. Ну, там далее ещё функций по мелочи, но не...

Ошибка в цикле - C++
Хочу создать массив из 10 чисел. void main() { char a,i; for (i=0; i&lt;10; i++) { printf (&quot;Enter...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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