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

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

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

Исправьте 1 ошибку пожалуйста - C++

03.11.2013, 13:54. Просмотров 358. Ответов 13
Метки нет (Все метки)

Помогите пожалуйста исправить ошибку, код должен быть для C++ 6.0
Вот код программы
CSS
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <iomanip.h>
#include <fstream>
 
using namespace std;
 
int mod(int x,int y)
{
    int s=1;
    for(int i=1;i<=y;i++)
    s*=x;
return s;
}
void setFile(int sizeX,int sizeY)
{
int y;
int x;
cout<<"Created file \"text.txt\""<<endl;
ofstream file;
file.open("text.txt");
int* *b=new int*[sizeY];
 
    for (y=0;y<sizeY;y++)
    {
    int* a=new int[sizeX];
        for(x=0;x<sizeX;x++)
        {
        a[x]=1+rand()% 20000;
        }
    b[y]=&a[0];
    }
 
    for (y=0;y<sizeY;y++)
    {
        for(x=0;x<sizeX;x++)
        file<<setw(5)<<*(b[y]+x)<<" ";
    file<<"\n";
    }
    cout<<endl;
    file.close();
}
 
 
void readFile(int* b[],int sizeY, int sizeX)
{
int y;
int x;
ifstream file;
file.open("text.txt");
cout<<endl;
cout<<endl;
        for(y=0;y<sizeY;y++)
        {
            int* a=new int[sizeX];
            for(x=0;x<sizeX;x++)
            {
                file>>a[x];
            }
        b[y]=&a[0];
        }
    for (y=0;y<sizeY;y++)
    {
        for(x=0;x<sizeX;x++)
        cout<<setw(6)<<*(b[y]+x)<<" ";
    cout<<endl;
    }
}
 
void find(int* b[],int sizeX,int sizeY,int value)
{
int y;
int x;
cout<<"valie is :"<<value<<endl;
int c=0;
    for (y=0;y<sizeY;y++)
    {
        for(x=0;x<sizeX;x++)
        cout<<setw(6)<<*(b[y]+x)<<" ";
    cout<<endl;
    }
cout<<"\n\n";
    for (y=0;y<sizeY;y++)
    {
        for(x=0;x<sizeX;x++)
        {
            for (c=1;c<=9;c++)
                if (((*(b[y]+x))/(mod(10,c)))==value)
                {
 
                c++;
                }
        }
    }
 
    if (c==0)
    cout<<"Sorry , but value = "<<value<<" haven't result :-("<<endl;
cout<<"number of answers: "<<c<<endl;
int *arrayValue=new int[c];
c=0;
    for (y=0;y<sizeY;y++)
    {
        for(x=0;x<sizeX;x++)
        {
            for (c=1;c<=9;c++)
                if (((*(b[y]+x))/(mod(10,c)))==value)
                {
                cout<< *(b[y]+x)<<" \n";
                arrayValue[c]=*(b[y]+x);
                c++;
                }
        }
    }
 
ofstream file2;
file2.open("result.txt");
cout<<"Created file:\"result.txt\""<<endl;
    for (y=0;y<c;y++)
    {
    file2<<arrayValue[y]<<" ";
    }
 
}
 
 
int main()
{
srand(time(0));
int sizeX,sizeY,value;
cout<<"Enter size x:";
cin>>sizeX;
cout<<"Enter size Y:";
cin>>sizeY;
int* *b=new int*[sizeY];
 
cout<<"\nfunction setFile:";
setFile(sizeX,sizeY);
cout<<"\nfunction read";
readFile(b,sizeY, sizeX);
 
cout<<"\nenter find value:";
cin>>value;
cout<<"\nfunction find:\n";
find(b,sizeX,sizeY,value);
 
delete[]b;
return 0;
}
Вот ошибка сама:
Compiling...
Cpp3.cpp
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp3.cpp(38) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class __SMANIP_int' (or there is no acceptable conversion)
Error executing cl.exe.

Cpp3.exe - 1 error(s), 0 warning(s)

Добавлено через 14 минут
up^
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 13:54     Исправьте 1 ошибку пожалуйста
Посмотрите здесь:

Исправьте ошибку, пожалуйста - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; double Yx(double x) { return pow(x, 2) * atan(x); } double...

Исправьте пожалуйста ошибку - C++
Программа не работает. Может хоть вы подскажете в чем здесь проблема. #include &lt;iostream&gt; using namespace std; void main() //...

исправьте ошибку,пожалуйста - C++
Вычислить среднее значение элементов, расположенных в массиве между первым и послед-ним нулевыми элементами. Поменять местами максимальный...

Метод золотого сечения.исправьте ошибку пожалуйста - C++
Задача &quot;Провести оптимизацию полученных полиномов на всем заданном интервале по методу золотого сечения&quot; вот что я закодил: #include...

Исправьте ошибку - C++
доброе утро, помогите исправить ошибку, строки 9 и 13 #include &lt;stdio.h&gt; #include &lt;math.h&gt; typedef double (*Pfun)(const double, const...

Исправьте ошибку - C++
2. Задан двумерный массив N x N. Разрешается произвольно переставлять элементы внутри любого столбца. Проверить можно ли выполнив конечное...

Исправьте ошибку - C++
Исправьте ошибку пожалуйста или подскажите где я допустил ошибку. Программа сортировки массива. вот код, а вот что оно мне выводит: ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
chedman
80 / 79 / 2
Регистрация: 30.10.2013
Сообщений: 250
03.11.2013, 14:04     Исправьте 1 ошибку пожалуйста #2
У меня этот код работает, может
C++
1
 file<<setw(5)<<*(b[y]+x)<<" ";
заменить на
C++
1
 file<<setw(5)<< (int)(*(b[y]+x))<<" ";
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
03.11.2013, 14:06  [ТС]     Исправьте 1 ошибку пожалуйста #3
Цитата Сообщение от chedman Посмотреть сообщение
У меня этот код работает, может
C++
1
 file<<setw(5)<<*(b[y]+x)<<" ";
заменить на
file<<setw(5)<< (int)(*(b[y]+x))<<" ";
так же ошибка, а у тебя с++ 6.0 стоит?
chedman
80 / 79 / 2
Регистрация: 30.10.2013
Сообщений: 250
03.11.2013, 14:10     Исправьте 1 ошибку пожалуйста #4
У меня CodeBlocks + MinGW 4.6.1

В общем то VS 6.0 устарела, Си++ развивается.
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
03.11.2013, 14:11  [ТС]     Исправьте 1 ошибку пожалуйста #5
Цитата Сообщение от chedman Посмотреть сообщение
У меня CodeBlocks + MinGW 4.6.1
мне вот надо чтобы через c++ 6.0 открывалось, а там эта строчка в никакую
chedman
80 / 79 / 2
Регистрация: 30.10.2013
Сообщений: 250
03.11.2013, 14:15     Исправьте 1 ошибку пожалуйста #6
может, что то с пространствами имен
попробуй
file<< ::setw(5)<<*(b[y]+x)<<" ";

или

file<< std::setw(5)<<*(b[y]+x)<<" ";
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
03.11.2013, 14:16  [ТС]     Исправьте 1 ошибку пожалуйста #7
Цитата Сообщение от chedman Посмотреть сообщение
может, что то с пространствами имен
попробуй
file<< ::setw(5)<<*(b[y]+x)<<" ";

или

file<< std::setw(5)<<*(b[y]+x)<<" ";
неа не работает, что же делать блин
chedman
80 / 79 / 2
Регистрация: 30.10.2013
Сообщений: 250
03.11.2013, 14:22     Исправьте 1 ошибку пожалуйста #8
попробуй не в одной строке все сделать, используй переменную типа int и используй ее в file << ...
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
03.11.2013, 14:25  [ТС]     Исправьте 1 ошибку пожалуйста #9
Цитата Сообщение от chedman Посмотреть сообщение
попробуй не в одной строке все сделать, используй переменную типа int и используй ее в file << ...
ниче не понял, я в с++ очень слаб
chedman
80 / 79 / 2
Регистрация: 30.10.2013
Сообщений: 250
03.11.2013, 14:28     Исправьте 1 ошибку пожалуйста #10
Тут ещё у тебя утечка памяти: нет delete[]
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
03.11.2013, 14:29  [ТС]     Исправьте 1 ошибку пожалуйста #11
Цитата Сообщение от chedman Посмотреть сообщение
Тут ещё у тебя утечка памяти: нет delete[]
можешь подправить все? а то я сам точно ничего не сделаю
chedman
80 / 79 / 2
Регистрация: 30.10.2013
Сообщений: 250
03.11.2013, 14:32     Исправьте 1 ошибку пожалуйста #12
C++
1
file<<setw(5)<<*(b[y]+x)<<" ";
замени на
C++
1
2
3
{int tmp=*(b[y]+x);
file<<setw(5)<< tmp <<" ";
}
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
03.11.2013, 14:33  [ТС]     Исправьте 1 ошибку пожалуйста #13
Цитата Сообщение от chedman Посмотреть сообщение
C++
1
file<<setw(5)<<*(b[y]+x)<<" ";
замени на
C++
1
2
3
{int tmp=*(b[y]+x);
file<<setw(5)<< tmp <<" ";
}
такая же шняга
C++ (Qt)
1
file<<setw(5)
вот в этой части ошибка
код был написан на c++11 вроде
я ее на 6.0 переделывал, это как то переделать может надо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2013, 14:54     Исправьте 1 ошибку пожалуйста
Еще ссылки по теме:

исправьте программу пожалуйста - C++
не переписывает строки меньше 50 дважды ,меньше 70 часть копирует и переносит на другую строку,завтра курсовую защищать с этой программой ...

Исправьте пожалуйста ошибки - C++
Есть задача: создать массив данных о студентах группы. Записать имя, фамилию, год рождения каждого студента, оценки по пяти экзаменах. В...

Структуры. исправьте пожалуйста... - C++
Описать структуру с именем NOTE, содержащую следующие поля: • фамилия, имя; • номер телефона; • день рождения (массив из трех чисел)....

Исправьте пожалуйста код - C++
Есть код , как сделать чтобы числа a,b,c вводились с клавиатуры... (Программа находит булеан чисел a,b,c) Код программы: ...

Исправьте код пожалуйста! - C++
Нужно чтобы вывод начинался с самого нижнего левого элемента \ #include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; // расширение функционала...


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

Или воспользуйтесь поиском по форуму:
chedman
80 / 79 / 2
Регистрация: 30.10.2013
Сообщений: 250
03.11.2013, 14:54     Исправьте 1 ошибку пожалуйста #14
Утечку памяти в функции find массив arrayValue устрани, может она влияет

Добавлено через 3 минуты
или вот ещё замени setw на ios::setw
Это бред, но кто знает.
Yandex
Объявления
03.11.2013, 14:54     Исправьте 1 ошибку пожалуйста
Ответ Создать тему
Опции темы

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