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

Что не так с кодом? - C++

Войти
Регистрация
Восстановить пароль
 
Mcray
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 36
22.03.2012, 21:36     Что не так с кодом? #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
#include <tchar.h>
#include <math.h>
#include <iostream.h>
//---------------------------------------------------------------------------
int Kol(int Chislo){
 int kol=0;
    int Chislo1=Chislo;
 int x;
        while(Chislo1!=0){
            Chislo1=Chislo1/10;
            k++;
        }
 
        int *mas = new int[k];
 
    for(int i = 0; i<N; i++){
        mas[i]=Chislo%10;
        Chislo/=10;
    }
 for(int i=0;i<N;i++){
    kol=kol+mas[i]*pow(10,i)*(i+1);       //почему здесь всё время mas[0]?
}
 return kol;
}
#pragma argsused
int main(int argc, CHAR* argv[])
{
int a,b;
int k=0,m=0;
cin>>a;
cin>>b;
 
int rez = Kol(b)-Kol(a);
cout<<rez<<endl;
    system("pause");
    return 0;
}
Вроде же всё правильно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2012, 21:36     Что не так с кодом?
Посмотрите здесь:

Что не так с кодом C++
Что не так с приведённым ниже кодом? C++
C++ прошу проверить на правильность if ! ) так же прикрепил файл с блок -схемой и кодом
подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) C++
Подскажите,пожалуйста ,что не так с кодом! C++
Что не так с кодом? Компилируется, но не работает (связные списки) C++
C++ что не так с кодом?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
22.03.2012, 21:57     Что не так с кодом? #2
Вообще то было бы не плохо если ты по подробней описал суть сложившейся ситуации, что пишет где ругается. Ну а первая ошибка-опечатка бросается в глаза это строка 11 откуда берется переменная k ты её походу с x перепутал, т.е. 'x' объявил а 'k' нет!!
Mcray
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 36
22.03.2012, 22:07  [ТС]     Что не так с кодом? #3
Тут ошибку нигде не выбрасывает.
Просто я коментом пометил где не меняется значение массива
Destank
99 / 99 / 10
Регистрация: 26.01.2012
Сообщений: 339
Записей в блоге: 1
22.03.2012, 22:12     Что не так с кодом? #4
Цитата Сообщение от Mcray Посмотреть сообщение
i<N
А N то не обьявлено.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 22:12     Что не так с кодом? #5
у Вас цикл от О до N

C++
1
2
for(int i=0;i<N;i++){
        kol=kol+mas[i]*pow(10,i)*(i+1);       //почему здесь всё время mas[0]?
Чему равно N он вообще гдето обьявлен??
Mcray
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 36
22.03.2012, 22:25  [ТС]     Что не так с кодом? #6
Блин это старый код вставил
Ща исправлю

Добавлено через 7 минут
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
#include <tchar.h>
#include <math.h>
#include <iostream.h>
//---------------------------------------------------------------------------
int Kol ( int Chislo ){
int kol = 0 ;
int k;
int Chislo1 = Chislo ;
while (Chislo1 ! =0 ){
Chislo1 = Chislo1 / 10;
k ++ ;
}
int * mas = new int [ k ] ;
for ( int i = 0 ; i < k ; i ++ ){
mas [ i ] = Chislo% 10;
Chislo / = 10;
}
for ( int i = 0; i < k ;i ++ ){
kol = kol + mas [i ] * pow ( 10,i ) * ( i +1 ) ; //почему здесь всё время mas[0]?
}
return kol ;
}
#pragma argsused
int _tmain ( int argc, _TCHAR * argv [])
{
int a,b ;
cin >>a ;
cin >>b ;
int rez = Kol ( b) - Kol ( a );
cout<<rez <<endl ;
system ("pause" ) ;
return 0 ;
}
Вот так вроде.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 22:39     Что не так с кодом? #7
у меня ваш код работает
Миниатюры
Что не так с кодом?  
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 22:41     Что не так с кодом? #8
только исправте то, что это такое

C++
1
Chislo1 ! =0
на
C++
1
Chislo1 != 0

ну и тут

C++
1
Chislo / = 10;
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
22.03.2012, 22:42     Что не так с кодом? #9
В этом коде в 9 строке не инициализирована переменная '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
29
30
31
32
33
34
#include <tchar.h>
#include <math.h>
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------
int Kol ( int Chislo ){
int kol = 0 ;
int k=0;
int Chislo1 = Chislo ;
while (Chislo1 !=0 ){
Chislo1 = Chislo1 / 10;
k ++ ;
}
int * mas = new int [ k ] ;
for ( int i = 0 ; i < k ; i ++ ){
mas[ i ] = Chislo% 10;
Chislo /= 10;
}
for ( int i = 0; i < k ;i ++ ){
kol = kol + mas[i] * pow( 10.0,i ) * ( i +1 ) ; //почему здесь всё время mas[0]?
}
return kol ;
}
#pragma argsused
int _tmain ( int argc, _TCHAR * argv [])
{
int a,b ;
cin >>a ;
cin >>b ;
int rez = Kol ( b) - Kol ( a );
cout<<rez <<endl ;
system ("pause" ) ;
return 0 ;
}
Миниатюры
Что не так с кодом?  
Mcray
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 36
22.03.2012, 22:49  [ТС]     Что не так с кодом? #10
Да он работает но когда ставишь точку останова на 21 строку число массива не изменяется остаётся всё время равным mas [0]. Из за чего это может быть?

Добавлено через 4 минуты
Если взять первое число 98 а второе 103 то должно получиться 16 или 15
А получается 115 у меня
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
22.03.2012, 23:20     Что не так с кодом? #11
Ну да всё правильно что написал, то и работает все нормально инкриминируется я про mas[i]
в первом случае при a = 98 mas[0]=3,mas[1]=0,mas[2]=3;
ты пишешь
C++
1
2
3
for ( int i = 0; i < k ;i++ ){
kol = kol + mas[i] * pow(10.0,i) * ( i +1 ) ; //почему здесь всё время mas[0]?
}
подставь значения вручную и увидишь
kol = 0+3*1;=3//т.к. любое число в нулевой степени равно 1
kol = 3+0*10*1;=3
kol = 3+1*100*3;=303;
Ну и второе число считается по аналогии
mas[0] = 8
mas[1] = 9
kol = 0+8*1;//т.к. любое число в нулевой степени равно 1
kol = 8+9*10*2;=188;
Ну и 303-188 = 115 не больше не меньше.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 23:31     Что не так с кодом? #12
Думал я что то не так делаю!

Спасибо stawerfar!

Mcray, все оно изначально правильно считало! пол часа времени потрачено зря
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2012, 23:37     Что не так с кодом?
Еще ссылки по теме:

C++ что-то не то с кодом C++
С моим кодом что-то не так! на калькуляторе одно число,а в программе другое( C++
Что не так с этим кодом? C++
C++ Подскажите что не так с кодом?

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

Или воспользуйтесь поиском по форуму:
Mcray
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 36
22.03.2012, 23:37  [ТС]     Что не так с кодом? #13
Это я вот делаю эту задачу
Вводятся натуральные числа - А и В
(А<В), которые не превышают
100000000. Найти число Х – середину
ряда, состоящего из всех цифр из чисел
от А до В записанных подряд, для этого
нужно: записать подряд все числа от А
до В (включительно), найти в
полученном ряду цифру или число из
двух цифр (это зависит от четности или
нечетности количества цифр в ряду),
стоящие ровно посредине ряда.
(Пример: для А=98, В=103, в ряду от 98
до 103 будет записано 16 цифр,
средними (8-й и 9-й) цифрами будут 10 ).

А этим кодом я хочу найти количество цифр.
Yandex
Объявления
22.03.2012, 23:37     Что не так с кодом?
Ответ Создать тему
Опции темы

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