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

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

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

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

22.03.2012, 21:36. Просмотров 745. Ответов 12
Метки нет (Все метки)

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;
}
Вроде же всё правильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2012, 21:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что не так с кодом? (C++):

что не так с кодом? - C++
Только начал изучать программирование по книге Прата С. возникли проблемы с упражнениями в конце второй главы, а именно с 5: Напишите...

Что не так с кодом - C++
что не так? #include &lt;iostream.h&gt; #include &lt;fstream.h&gt; #include &lt;windows.h&gt; #include &quot;F.h&quot;

Что не так с кодом? - C++
Задача из Прата: Выполните упражнение 4 из главы 9, но преобразуйте структуру Sales и ассоциированные с ней функции в класс и методы....

Что не так с этим кодом? - C++
Что не так с этим кодом? #include &lt;stdio.h&gt; struct Texture { unsigned int tex; Texture() { tex = 0; } };

Подскажите что не так с кодом? - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; int main() { int matrix; int A={0,1,2,3,4}; int n=5; for(int j=0; j&lt;n;...

Что не так с приведённым ниже кодом? - C++
Что не так с приведённым ниже кодом? for(int i = 0; i &lt; n; i++){ k = s.find('*'); t = s.rfind('*'); }

12
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
22.03.2012, 21:57 #2
Вообще то было бы не плохо если ты по подробней описал суть сложившейся ситуации, что пишет где ругается. Ну а первая ошибка-опечатка бросается в глаза это строка 11 откуда берется переменная k ты её походу с x перепутал, т.е. 'x' объявил а 'k' нет!!
0
Mcray
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 36
22.03.2012, 22:07  [ТС] #3
Тут ошибку нигде не выбрасывает.
Просто я коментом пометил где не меняется значение массива
0
Destank
99 / 99 / 10
Регистрация: 26.01.2012
Сообщений: 339
Записей в блоге: 1
22.03.2012, 22:12 #4
Цитата Сообщение от Mcray Посмотреть сообщение
i<N
А N то не обьявлено.
0
Infinity3000
1058 / 577 / 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 он вообще гдето обьявлен??
0
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 ;
}
Вот так вроде.
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 22:39 #7
у меня ваш код работает
0
Миниатюры
Что не так с кодом?  
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 22:41 #8
только исправте то, что это такое

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

ну и тут

C++
1
Chislo / = 10;
0
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 ;
}
0
Миниатюры
Что не так с кодом?  
Mcray
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 36
22.03.2012, 22:49  [ТС] #10
Да он работает но когда ставишь точку останова на 21 строку число массива не изменяется остаётся всё время равным mas [0]. Из за чего это может быть?

Добавлено через 4 минуты
Если взять первое число 98 а второе 103 то должно получиться 16 или 15
А получается 115 у меня
0
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 не больше не меньше.
2
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
22.03.2012, 23:31 #12
Думал я что то не так делаю!

Спасибо stawerfar!

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

А этим кодом я хочу найти количество цифр.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2012, 23:37
Привет! Вот еще темы с ответами:

Подскажите,пожалуйста ,что не так с кодом! - C++
Не могу понять,что с кодом.Если не сложно,то прокомментируйте пожалуйста #include &lt;stdio.h&gt; #include &lt;string.h&gt; #define ...

Что не так с кодом? Компилируется, но не работает (связные списки) - C++
#include &quot;stdio.h&quot; #include &quot;stdlib.h&quot; #include &lt;string.h&gt; #include &quot;iostream&quot; using namespace std; class Elem { ...

С моим кодом что-то не так! на калькуляторе одно число,а в программе другое( - C++
вот код программы,я только учусь,через неделю олимпиаду писать, так что выручайте)) #include &lt;iostream&gt; #include &lt;cstdlib&gt; using...

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


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

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

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