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

Не могу найти ошибку в коде :( - C++

Восстановить пароль Регистрация
 
Helloween
1 / 1 / 0
Регистрация: 23.04.2011
Сообщений: 18
12.10.2012, 00:15     Не могу найти ошибку в коде :( #1
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
33
34
35
36
37
38
#include <stdio.h>
#include <math.h>
#include <conio.h>
void main ()
{
clrscr();
float eps=0.0001;
float x,S,ocr;
scanf ("%f", &x);
float s=0;
int k=1;
printf ("1.Do/while, 2.For, 3.While");
scanf("%i", &k);
char c;
c=getch();
switch (k);
if (x>-1 && x<1)
do {
float ocr;
ocr=pow(x, 2*k-1)/(2*k-1);
S+=ocr;
k++;}
while (ocr>eps);
float y=log((1+x)/(1-x));
S=S*2;
printf("y=%f S=%f", y, S);
getch();
for (k=1; ocr>eps; k++);
while (ocr>eps);
 
{
case1: printf ("Do/While");
break;
case2: printf ("For");
break;
case3: printf ("While");
break;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 00:15     Не могу найти ошибку в коде :(
Посмотрите здесь:

Не могу найти ошибку в коде C++
Не могу найти ошибку в коде C++
C++ Не могу найти ошибку в коде
C++ Не могу найти ошибку в коде
C++ Не могу найти ошибку в коде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CableGuy
 Аватар для CableGuy
14 / 14 / 1
Регистрация: 29.03.2012
Сообщений: 41
12.10.2012, 00:22     Не могу найти ошибку в коде :( #2
16 строка switch(k)
Она должна быть после 29 строки, если я правильно код понял и без точки с запятой в конце.
Helloween
1 / 1 / 0
Регистрация: 23.04.2011
Сообщений: 18
12.10.2012, 00:24  [ТС]     Не могу найти ошибку в коде :( #3
Объясняю : задача такая- написать код по формуле ,используя 3 цикла + switch ) нахимичил вот это) не пашет)
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
12.10.2012, 00:45     Не могу найти ошибку в коде :( #4
Цитата Сообщение от Helloween Посмотреть сообщение
C++
1
2
3
4
5
6
case1: printf ("Do/While");
break;
case2: printf ("For");
break;
case3: printf ("While");
break;
должно быть
C++
1
2
3
4
5
6
case 1: printf ("Do/While");
break;
case 2: printf ("For");
break;
case 3: printf ("While");
break;
или

C++
1
2
3
4
5
6
case '1': printf ("Do/While");
break;
case '2': printf ("For");
break;
case '3': printf ("While");
break;
Добавлено через 38 секунд
+ мне кажется что CableGuy тоже прав
Helloween
1 / 1 / 0
Регистрация: 23.04.2011
Сообщений: 18
12.10.2012, 00:50  [ТС]     Не могу найти ошибку в коде :( #5
а как же SWITCH? его не трогать??
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
12.10.2012, 01:00     Не могу найти ошибку в коде :( #6
Цитата Сообщение от Helloween Посмотреть сообщение
а как же SWITCH? его не трогать??
Цитата Сообщение от MrGrig Посмотреть сообщение
+ мне кажется что CableGuy тоже прав
я бы всетаки посоветовал "потрогать" т.е. сделать так как предложил CableGuy. Ибо я чтото не припоминаю чтобы кейсы стояли сами по себе

/*
C++
1
2
3
4
5
6
7
8
switch (k){
case '1': printf ("Do/While");
break;
case '2': printf ("For");
break;
case '3': printf ("While");
break;
}
*/

Добавлено через 3 минуты
у вас очень интересная программа, особенно некоторые её строки...


Цитата Сообщение от Helloween Посмотреть сообщение
C++
1
while (ocr>eps);
//что он делает?
Цитата Сообщение от Helloween Посмотреть сообщение
C++
1
float x,S,ocr;
Цитата Сообщение от Helloween Посмотреть сообщение
C++
1
float ocr;//компилятор должен ругаться
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2012, 02:05     Не могу найти ошибку в коде :( #7
Цитата Сообщение от MrGrig Посмотреть сообщение
Сообщение от Helloween Код C++
1 float ocr;//компилятор должен ругаться
Не будет. Второй ocr объявлен в теле do while и ничего не знает про первый ocr.

Добавлено через 1 минуту
Цитата Сообщение от MrGrig Посмотреть сообщение
Сообщение от Helloween Код C++
1 while (ocr>eps);
//что он делает?
Выполняется тело цикла do while пока выражение ocr > eps есть true.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
12.10.2012, 08:10     Не могу найти ошибку в коде :( #8
Цитата Сообщение от alsav22 Посмотреть сообщение
Не будет. Второй ocr объявлен в теле do while и ничего не знает про первый ocr.

Добавлено через 1 минуту
Выполняется тело цикла do while пока выражение ocr > eps есть true.
Действительно, просто я крайне редко использую конструкции типа ду вайл, не знаю, не нравятся они мне =) + не когда каждая новая строка пишется с без отступов вложенности, это делает код сходу нечитабельным приходится напрягать глаза=с отсюда невнимательность

Добавлено через 58 секунд
извиняюсь перед автором что дал ложные коментарии =)

Добавлено через 2 минуты
хотя на счет orc я бы все таки поспорил. Если бы цикл с объявлением внутри был до внешнего объявления, согласен компилятор бы не ругался, тут же идет определение в мэйне а потом переопределение в цикле, разве нет?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2012, 08:39     Не могу найти ошибку в коде :( #9
Цитата Сообщение от MrGrig Посмотреть сообщение
хотя на счет orc я бы все таки поспорил. Если бы цикл с объявлением внутри был до внешнего объявления, согласен компилятор бы не ругался, тут же идет определение в мэйне а потом переопределение в цикле, разве нет?
Нет. В цикле не переопределение. Создаётся новая локальная для цикла переменная с тем же именем. По правилам, она в цикле перекрывает переменную объявленную до цикла. При выходе из цикла она умирает, и работа опять идёт с переменной объявленной до цикла.
C++
1
2
3
4
5
6
7
8
int  a = 10;
do
{
    int a = 15;
    cout << "a in = " << a << endl;
} while (0);
 
cout << "a out = " << a << endl;
Миниатюры
Не могу найти ошибку в коде :(  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2012, 16:47     Не могу найти ошибку в коде :(
Еще ссылки по теме:

Не могу найти ошибку в коде C++
Не могу найти ошибку в коде C++
C++ Не могу найти ошибку в коде

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

Или воспользуйтесь поиском по форуму:
Helloween
1 / 1 / 0
Регистрация: 23.04.2011
Сообщений: 18
12.10.2012, 16:47  [ТС]     Не могу найти ошибку в коде :( #10
Всё впорядке))) справился))) Всем спасибо)))
Yandex
Объявления
12.10.2012, 16:47     Не могу найти ошибку в коде :(
Ответ Создать тему
Опции темы

Текущее время: 11:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru