|
02.02.2009, 19:46
|
#1
|
Оператор ЭВМ
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений (для 3 пользователей)
|
Мои вопросы по С++
В свзи с тем что "чуёба" (с) Импер .. заставляет учить С++ приходится решать задачки там, а в С++ я нуб нубом)
так вот там задачка
задан двумерный массив, надо найти все неотрицательные значения и найти их среднее значение(вроде так)
#include <math.h>
#define m 3
#define n 2
// и еще инклуды, непомню точно)
using namespace std;
int main();
{
int S,i,j,a,d,mass[m][n];
int end;
a=0;
d=0;
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
{
mass[i][j] = rand(); // или cin, мне все равно)
}
}
//Вывод исходного массива
cout << "Исходный массив: ";
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
{
cout << mass[i][j];
}
}
//----------------------------
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
{
if(mass[i][j] >= 0)
{
a = a +mass[i][j];
d++;
}
}
}
S=a/d;
cout << "Результат: ";
cout S;
Вроде все работает и компиляция проходит, но выдает странное число...
весь код облазил ниче не нашол)))
и еще не понимаю зачем нужен define, если можно просто в теле программы написть int m=3; int n =2;
Да и не закрывайте темку, по мере "чуёбы" буду писать сюда еще вопросы.. если будут возникать)
__________________
Gameplay First
Последний раз редактировалось Chakki, 02.02.2009 в 19:54.
|
(Offline)
|
|
02.02.2009, 19:58
|
#2
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Мои вопросы по С++
rand() - загадывает случайное. случную последовательность 32нулей ил единиц.
чтобы получить число в какаих то человеческих раницах, а не -2^31 ... 2^31 - 1, надо брать остаток от целочисленного деления - оператор %.
например случайное число от 0 до 100 ето rand() % 101.
от -100 до 100 ето rand()%201 - 100.
ну и так далее.
очень плохо. лучше пиши const int m = 3, n = 2;
выводить лучше так:
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
{
cout << mass[i][j];
}
cout<<endl;
}
S - лучше сделать double.
ну и есть оператор += если что.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
02.02.2009, 20:01
|
#3
|
Оператор ЭВМ
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Мои вопросы по С++
да, про дефайн я сам усомнился, но у препода не спросил
rand() я менял на паре, и вводил числа с помощью cin
Это все конечно хорошо.
Но проблема то осталась проблемой=(
он почемуто выводит мне страшное пятизначное число, когда должен вывести не более двухзначного
(с клавиатуры я вводил массив 1 2 3 4 5 6)
__________________
Gameplay First
|
(Offline)
|
|
02.02.2009, 20:08
|
#4
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Мои вопросы по С++
#include <math.h>
#include <iostream>
const int m=3;
const int n=2;
// и еще инклуды, непомню точно)
using namespace std;
int main()
{
int S,i,j,a,d,mass[m][n];
// int end;
a=0;
d=0;
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
{
mass[i][j] = (rand()%21)-10; // или cin, мне все равно)
}
}
//Вывод исходного массива
cout << "Исходный массив: ";
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
{
cout << mass[i][j]<<(char)9;
}
cout<<endl;
}
//----------------------------
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
{
if(mass[i][j] >= 0)
{
a = a +mass[i][j];
d++;
}
}
}
S=a/d;
cout << "Результат: "<<S<<endl;
}
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
02.02.2009, 20:18
|
#5
|
Оператор ЭВМ
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Мои вопросы по С++
ппц! оО
я аж афигел оО
запускаю у себя код который сам написал в первом посту и работает оО
в институте работал, выдовал СТРАШНЫЕ числа!
Вот что подрывает тягу учится - институтские компы оО
Но все равно спс, холидэл, есть чему поучится)))
__________________
Gameplay First
|
(Offline)
|
|
05.02.2009, 21:30
|
#6
|
Оператор ЭВМ
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Мои вопросы по С++
Ребята, вот еще вопрос
Такая задачка, значит двумерный массив, целочисленный, размер не важен, там случайные числа, нужно зделать вывод массива по схеме спираль
ну тоесть вывод такой
1 число - ячейка (1.1)
2 число - чейка (1.2)
3 число - ячейка (1.3)
4 число - ячейка (2.3)
5 число - ячейка (3.3)
и так по спирали))))
мне не нужен код, я никак не могу понять какбы это зделать ... нужна идея, толчок)
помогите пожалуйста, а реализовать - я уж какнибудь сам (не для того же я тут, чтобы за меня решали)
__________________
Gameplay First
|
(Offline)
|
|
05.02.2009, 22:01
|
#7
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Мои вопросы по С++
подсказка - "граница", "стенка"
|
(Offline)
|
|
07.02.2009, 10:15
|
#8
|
Оператор ЭВМ
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Мои вопросы по С++
Значит ночевал я не дома, и на бумаге написал вот это
int main(...)
{const int m = 3;
const int n = 3;
int i,,j,mass[m][n];
//ввод чисел в массив
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
{mass[i][j]=rand()%101;} }
//вывод исходного массива
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
{cout<<"Исходный массив: "<<mass[i][j]<<endl;} }
//далее вывод по спирали
j=0;
for(i=0;i<m;i++)
{cout<<"первая строка: "<<mass[i][j]<<endl;}
i=m-1;
for(j=0;j<n;j++)
{cout<<"третий столбец: "<<mass[i][j]<<endl;}
j=n-1;
for(i=m-1;i>=0;i--)
{cout<<"нижня строка задом наперед оО: "<<mass[i][j]<<endl;}
i=0;
for(j=n-1;j>0;j--)
{cout<<"первый столбец бла бла: "<<mass[i][j]<<endl;}
j=n-1;
for(i=m-1;i<m-1;i++)
{cout<<"конечный вывод(отрезок по центру): "<<mass[i][j]<<endl;}
решение той задачи, которая выше, но алгоритм плохой, только если столбцо и строк 3 и 3... как написать универсальный в голову ниче не приходит, может я чтото важное по работе с двумерными массивами пропустил?
__________________
Gameplay First
|
(Offline)
|
|
07.02.2009, 23:28
|
#9
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Re: Мои вопросы по С++
я с++ незнаю, но разве нелзя в твоем коде например вместо констант сделать считыватель количества строк и столбов ?
|
(Offline)
|
|
09.02.2009, 11:55
|
#10
|
Оператор ЭВМ
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Мои вопросы по С++
а я почти ниче в программировании не знаю, и думаю)
а пока приболел, работу временно остановил
да и еслибы зделал кое как, препод бы не поверил, мы такого еще не прошли, а мне надо по программе курса)
__________________
Gameplay First
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Вопросы. |
AndruXa |
Blitz3D |
17 |
13.09.2007 13:54 |
некоторые вопросы по с++ |
Timon |
C++ |
10 |
12.08.2007 02:16 |
Вопросы |
vadim2 |
3D-программирование |
2 |
11.07.2006 21:59 |
Часовой пояс GMT +4, время: 15:43.
|