Часть 2. Я начинающий, подскажите как...(Все вопросы начинающих!!!)
ListBox1->Columns=3;
каким образом записать строку в второй и третий столбцы?
#include <iostream>
using namespace std;
class Cat
{
public:
Cat(){X= new int;}//А не int *X=new int; , т.к. тогда создаёшь внутреннюю переменную X , а член класса X остаётся не инициализированным.
~Cat(){delete X;}
int GetX(){return *X;}//Значение X
int GetXAddr(){return (int)X;}//Значение указателя
void SetX(int x)
{
*X=x;
}
private:
int *X;
};
int _tmain(int argc, _TCHAR* argv[])
{
Cat *Polly= new Cat;
Polly->SetX(6);
cout<<Polly->GetX()<<" "<<Polly->GetXAddr()<<endl;
system("pause");
return 0;
}
<DataTemplate x:Key="myDataTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button Click="button1_Click" Content="Button" Grid.Column="1" Name="button1" />
<TextBox Text="{Binding Path=str}" Name="textBox1" />
<Rectangle Fill="{Binding Path=brush}" Grid.Column="2" />
</Grid>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox Name="MyListBox"
ItemTemplate="{StaticResource myDataTemplate}"/>
</Grid>
В коде добавляю элементы в список, нормально отображаются. Но не могу разобраться: как идентифицировать элемент (в событии button1_Click), в котором была нажата кнопка? То есть нужно получить либо номер строки в ListBox'е, либо сам элемент.
{
Button btn = sender as Button;
ContentPresenter cp = btn.TemplatedParent as ContentPresenter;
MyItem item = cp.Content; //это и есть элемент в списке
}
Насчет ContentPresenter нашел в статье.
Я написала код программы наследования:
using namespace std;
class Base
{
protected:
char * name;
char * surname;
int age;
public:
Base()
{
surname=new char [20];
name=new char [20];
age=0;
}
~Base()
{
delete name;
delete surname;
}
void Print()
{
cout<<name<<" "<<surname<<"\n возвраст:"<<age<<endl;
}
void Input()
{
cout<<"введите фамилию, имя"<<endl;
cin>>surname>>name;
cout<<"введите возраст"<<endl;
cin>>age;
}
};
class Student:public Base
{
private:
int coorse,group;
int rate;
public:
Student()
{
coorse=0;
group=0;
rate=0;
}
~Student()
{
delete name;
delete surname;
}
void Print()
{
cout<<name<<","<<surname<<","<<age<<","<<coorse<<","<<group<<","<<rate<<endl;
}
void Input()
{
cout<<"Введите имя студента "<<endl;
cin>>name;
cout<<"Введите фамилию студента "<<endl;
cin>>surname;
cout<<"Введите возраст студента "<<endl;
cin>>age;
cout<<"Введите курс студента"<<endl;
cin>>coorse;
cout<<"Введите группу студента"<<endl;
cin>>group;
cout<<"Введите рейтинг студента"<<endl;
cin>>rate;
}
};
class Teacher:protected Base
{
char*post;
float salary;
public:
Teacher()
{
post=new char [20];
salary=0;
}
~Teacher()
{
delete name;
delete surname;
delete post;
}
void Print()
{
cout<<name<<","<<surname<<","<<age<<","<<post<<","<<salary<<endl;
}
void Input()
{
cout<<"Введите имя преподавателя "<<endl;
cin>>name;
cout<<"Введите фамилию преподавателя "<<endl;
cin>>surname;
cout<<"Введите возраст преподавателя "<<endl;
cin>>age;
cout<<"Введите должность преподавателя "<<endl;
cin>>post;
cout<<"Введите зарплату преподавателя"<<endl;
cin>>salary;
}
};
class Head:private Base
{
char*chair;
public:
Head()
{
chair = new char [20];
}
~Head()
{
delete name;
delete surname;
delete chair;
}
void Print()
{
cout<<name<<","<<surname<<","<<chair<<endl;
cout<<"возраст"<<age<<endl;
}
void Input()
{
cout<<"Введите имя заведующего кафедрой "<<endl;
cin>>name;
cout<<"Введите фамилию заведующего кафедрой "<<endl;
cin>>surname;
cout<<"Введите кафедру заведующего "<<endl;
cin>>chair;
cout<<"Введите возраст заведующего кафедрой "<<endl;
cin>>age;
}
};
void main()
{
setlocale(LC_ALL, "Russian");
Base *a=new Base();
a->Input();
a->Print();
Student *b= new Student();
b->Input();
b->Print();
Teacher *c= new Teacher();
c->Input();
c->Print();
Head *d= new Head ();
d->Input();
d->Print();
system("pause");
}
Мне помогли с выделением памяти,только я не понимаю зачем,не могли б вы объяснить!
прошу мне помочь еще раз, так как реально не кому обратиться.
буду очень благодарен за ответ.
#include "stdafx.h"
#include <iostream>
using namespace std;
class Cat
{
public:
Cat();
~Cat();
int GetX()const {return X;}
void SetX(int x){ X = x;}
int GetY()const{return Y;}
void SetY(int y){Y = y;}
private:
int X, Y;
};
Cat::Cat()
{
X=4;
Y=2;
}
Cat::~Cat(){cout<<"uu";}
int _tmain(int argc, _TCHAR* argv[])
{
Cat Gor;
cout<<Gor.GetX();
const Cat *Hot=new Cat;
cout<<Hot->GetX();
delete Hot;// udalil zna4enie ukazatel9, i sootvetstvenno osvobodil pam9t6 vudel9uweesu na nego
Cat *Hot=new Cat;// i ho4u sozdat etot obekt po novomy adresy, i proverit ne 9vl9ets9 li zna4enie pam9ti constantoy
Hot->SetX(8);// no ono poxodu uje ispol6zuet tot je obekt 4to 9 uje ob9vl9l, i ispolzuet ego kak constantnuy,
cout<<Hot->GetX();// po4emu nelz9 udal9t ili men9t ukazateli ukazuuwie na adresa gde
// hran9ts9 constantu.
system("pause");
return 0;
}
pohoje no uje s peremennoy, pochemu nelz9 men9t adres cotoruy hraniol ucazatel, esli on hranil adres konstantu, hot9
sam kak int * const pt ne bil ukazan
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
const int t=4;
int y=6;
int *pt=0;
pt=&t;
cout<<*pt<<"\n";
pt=&y;
cout<<*pt;
system("pause");
return 0;
}
Я правильно понял вопрос: "зачем тебе помогли?". Не знаю... наверное, сжалились...:rolleyes:
Dethrone
1) Используй тег CODE
2) Задай вопрос для начала, а то не ясно - в чем тебе нужна помощь
3) Не используй транслит
pohoje no uje s peremennoy, pochemu nelz9 men9t adres cotoruy hraniol ucazatel, esli on hranil adres konstantu, hot9
sam kak int * const pt ne bil ukazan
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
const int t=4;
int y=6;
int *pt=0;
pt=&t;
cout<<*pt<<"\n";
pt=&y;
cout<<*pt;
system("pause");
return 0;
}
На такой вариант g++ ругается мол немогу преобразовать const int* в int*
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
const int t=4;
int y=6;
int *pt=0;
pt=(int*)&t;
cout<<*pt<<endl;
pt=&y;
cout<<*pt<<endl;
//system("pause");
return 0;
Так хавает и нормально изменяет значение указателя.
Ну а по сабжу лучше про cast'ы почитай.
Подскажите как правильно передавать данные через сокет?
У меня есть структура сервер-клиент. Необходимо передать ванные (например с сервера клиенту). Данные передаются пакетами по 1024 байта. Сейчас мне приходится делить исходные данные на пакеты и в последний пакет включать некий условный символ конца передачи, а клиент каждый пакет проверять на наличие этого конца. К этой структуре я пришел так-как принимающий массив байт должен быть определен до его использования. Я прочитал на msdn-е, что есть флаг сокета, говорящий о том, что сообщение передано не целиком (Partial). Как мне в клиенте проверять этот флаг?
В клиенте принимай размер, создавай массив и в него считывай весь пакет.
Вот код программы на наследование,необходимо сделать еще стек...
using namespace std;
class Base
{
protected:
char * name;
char * surname;
int age;
public:
Base()
{
surname=new char [20];
name=new char [20];
age=0;
}
~Base()
{
delete name;
delete surname;
}
void Print()
{
cout<<name<<" "<<surname<<"\n возвраст:"<<age<<endl;
}
void Input()
{
cout<<"введите фамилию, имя"<<endl;
cin>>surname>>name;
cout<<"введите возраст"<<endl;
cin>>age;
}
};
class Student:public Base
{
private:
int coorse,group;
int rate;
public:
Student()
{
coorse=0;
group=0;
rate=0;
}
~Student()
{
delete name;
delete surname;
}
void Print()
{
cout<<name<<","<<surname<<","<<age<<","<<coorse<<","<<group<<","<<rate<<endl;
}
void Input()
{
cout<<"Введите имя студента "<<endl;
cin>>name;
cout<<"Введите фамилию студента "<<endl;
cin>>surname;
cout<<"Введите возраст студента "<<endl;
cin>>age;
cout<<"Введите курс студента"<<endl;
cin>>coorse;
cout<<"Введите группу студента"<<endl;
cin>>group;
cout<<"Введите рейтинг студента"<<endl;
cin>>rate;
}
};
class Teacher:protected Base
{
char*post;
float salary;
public:
Teacher()
{
post=new char [20];
salary=0;
}
~Teacher()
{
delete name;
delete surname;
delete post;
}
void Print()
{
cout<<name<<","<<surname<<","<<age<<","<<post<<","<<salary<<endl;
}
void Input()
{
cout<<"Введите имя преподавателя: "<<endl;
cin>>name;
cout<<"Введите фамилию преподавателя: "<<endl;
cin>>surname;
cout<<"Введите возраст преподавателя: "<<endl;
cin>>age;
cout<<"Введите должность преподавателя: "<<endl;
cin>>post;
cout<<"Введите зарплату преподавателя:"<<endl;
cin>>salary;
}
};
class Head:private Base
{
char*chair;
public:
Head()
{
chair = new char [20];
}
~Head()
{
delete name;
delete surname;
delete chair;
}
void Print()
{
cout<<name<<","<<surname<<","<<chair<<endl;
cout<<"возраст"<<age<<endl;
}
void Input()
{
cout<<"Введите имя заведующего кафедрой "<<endl;
cin>>name;
cout<<"Введите фамилию заведующего кафедрой "<<endl;
cin>>surname;
cout<<"Введите кафедру заведующего "<<endl;
cin>>chair;
cout<<"Введите возраст заведующего кафедрой "<<endl;
cin>>age;
}
};
void main()
{
setlocale(LC_ALL, "Russian");
Base *a=new Base();
a->Input();
a->Print();
Student *b= new Student();
b->Input();
b->Print();
Teacher *c= new Teacher();
c->Input();
c->Print();
Head *d= new Head ();
d->Input();
d->Print();
system("pause");
}
В клиенте принимай размер, создавай массив и в него считывай весь пакет.
Спасибо за ответ.
И тогда передавать данные одним пакетом (речь идет примерно о 5-20КБ)? В стиле пусть TCP сам разбивает на нужные ему сегменты?
И стоит ли такую схему применять для передачи данных размером в 2-3Мб?
И тогда передавать данные одним пакетом (речь идет примерно о 5-20КБ)? В стиле пусть TCP сам разбивает на нужные ему сегменты?
Нуда, люди ж старались протокол разрабатывали, специально чтоб прогеры не заморачивались в этом плане :)
И стоит ли такую схему применять для передачи данных размером в 2-3Мб?
2-3 Мб - немного. 2-3Гб тогда б стоило наверно на части пакет разделять.
Спасибо. :D
Я начала писать код программы наследование,создавать стек из элементов базового класса,только не уверена что правильно начала..
class Base
{
protected:
char * name;
char * surname;
int age;
public:
Base()
{
s
}
virtual void Print(){urname=new char [20];
name=new char [20];
age=0;};
virtual void Input()=0;
virtual ~Base(){}
};
class Student:public Base
{
private:
int coorse,group;
int rate;
public:
Student()
{
coorse=0;
group=0;
rate=0;
}
~Student()
{
delete name;
delete surname;
}
void Print()
{
cout<<name<<","<<surname<<","<<age<<","<<coorse<<","<<group<<","<<rate<<endl;
}
void Input()
{
cout<<"Введите имя студента "<<endl;
cin>>name;
cout<<"Введите фамилию студента "<<endl;
cin>>surname;
cout<<"Введите возраст студента "<<endl;
cin>>age;
cout<<"Введите курс студента"<<endl;
cin>>coorse;
cout<<"Введите группу студента"<<endl;
cin>>group;
cout<<"Введите рейтинг студента"<<endl;
cin>>rate;
}
};
class Teacher:protected Base
{
char*post;
float salary;
public:
Teacher()
{
post=new char [20];
salary=0;
}
~Teacher()
{
delete name;
delete surname;
delete post;
}
void Print()
{
cout<<name<<","<<surname<<","<<age<<","<<post<<","<<salary<<endl;
}
void Input()
{
cout<<"Введите имя преподавателя: "<<endl;
cin>>name;
cout<<"Введите фамилию преподавателя: "<<endl;
cin>>surname;
cout<<"Введите возраст преподавателя: "<<endl;
cin>>age;
cout<<"Введите должность преподавателя: "<<endl;
cin>>post;
cout<<"Введите зарплату преподавателя:"<<endl;
cin>>salary;
}
};
class Head:private Base
{
char*chair;
public:
Head()
{
chair = new char [20];
}
~Head()
{
delete name;
delete surname;
delete chair;
}
void Print()
{
cout<<name<<","<<surname<<","<<chair<<endl;
cout<<"возраст"<<age<<endl;
}
void Input()
{
cout<<"Введите имя заведующего кафедрой "<<endl;
cin>>name;
cout<<"Введите фамилию заведующего кафедрой "<<endl;
cin>>surname;
cout<<"Введите кафедру заведующего "<<endl;
cin>>chair;
cout<<"Введите возраст заведующего кафедрой "<<endl;
cin>>age;
}
};
class List
{
Base* head;
public:
List()
{
head=NULL;
}
void Push(Base*b);
int Pop();
void main()
{
setlocale(LC_ALL, "Russian");
List l;
/*Base *a=new Base();
a->Input();
a->Print();
Student *b= new Student();
b->Input();
b->Print();
Teacher *c= new Teacher();
c->Input();
c->Print();
Head *d= new Head ();
d->Input();
d->Print();
system("pause");*/
}
А обязательно char* ? Не легче ли std::string?
{
Base*head;
public:
Stack()
{
head=NULL;
}
void Push(Base*val)
echo("This is string");
#1 Норм
echo 'This is String';
#2 Быдлокод
$strA = "text"
echo("Var: $strA");
#2 Норм
$strA = 'text'
echo 'Var: '. $strA;
#3 Быдлокод
if(x==0){
die("Err");
}
3# Норм
if(x == 0)
die('Error');
#4 Быдлокод, SQL-inj
$myName = $_POST['my_name'];
$getInfo = mysql_query("select * from table_name where name=$myName") or die(mysql_error());
#4 Норм
$myName = $_POST['my_name'];
$getInfo = mysql_query("SELECT* FROM `table_name` WHERE `name` = '".mysql_real_escape_string($myName). "'") or die(mysql_error());
Норм
На PHP все вышеперечисленное допускается синтаксисом, но за такое можно оторвать руки. Есть ли в C/C++ какие-нибудь моменты, схожие с теми, что я привел в пример?
Главное: C и C++ - это разные языки!
Быдлокод как раз получается, когда на C++ пишут в стиле C.
Основной функцией которого явл рисование прямыми линиями скелетных схем(оооочень больших) хранить эти схемы в БД.
Я понимаю что каждая линия состоит из двух точек координаты которых будут храниться в БД.
Вопрос в том как можно сделать оконечные точки каждой прямой и сами прямые кликабельными( чтобы к ним можно было бы тоже привязывать какието объекты, выделять и тд).
Второй вопрос состоит в масштабировании получившейся оооочень большой схемы без ущерба качеству изображения.
Подскажите с помощью чего можно реализовать это все, Graphics вроде не подходит....
Если можно литературу посоветовать или ссылочки.....
Заранее благодарен.
Судя по упоминанию Graphics, речь идёт о WindowsForms приложении. Это обязательно? Потому что в wpf сделать описанное поведение, на мой взгляд, намного проще.
Конечно, всё это можно сделать и в WinForms, с помощью Graphics. Но, тогда, клик на линии придётся определять вручную. Между тем, в WPF заботу об этом берёт на себя система.
Основным источником сведений, конечно же, является MSDN. Вот, например, ссылка на знакомство с рисованием простых фигур http://msdn.microsoft.com/ru-ru/library/ms747393.aspx
С масштабированием проблем не будет. WPF как раз и создавался с прицелом на это. Векторная графика, вещественные значения координат и пр.
Быдлокод как раз получается, когда на C++ пишут в стиле C.
Так, допустим, что-то уже есть.
Но вот меня интересуют моменту насчет читабельности кода
Допустим, два варианта объявление прототипа:
void OneFunc(int intA, int intB);
Что по-вашему правильнее?
Допустим, два варианта объявление прототипа:
void OneFunc(int intA, int intB);
Что по-вашему правильнее?
Конечно, второй вариант. Именно по причине большей читабельности.
А вообще, оба варианта плохи. OneFunc - о чём говорит это название? что делает эта функция? intA, intB - для чего эти значения? что они означают?
Я понимаю, это всего лишь пример, но лишний раз обращу внимание на необходимость внятного именования.
Например в C#4 стало возможно указывать названия аргументов при вызове методов. Т. е. можно вызов вышеупомянутой функции можно написать так:
Ещё обращу внимание на первое сообщение.
$getInfo = mysql_query("SELECT* FROM `table_name` WHERE `name` = '".mysql_real_escape_string($myName). "'") or die(mysql_error());
Я php фактически не знаю, но даже я вижу, за что можно оторвать руки в этом норм коде.
Функции mysql*, насколько мне известно, считаются устаревшими. Взамен следует употреблять mysqli*.
Просто вызвать die - не комильфо. Если произошла ошибка, с ней нужно разбираться, а не вываливать сообщение, и на этом всё.
SQL-запрос "SELECT *" - думаю, любой админ базы данных на это люто осерчает.
Я что хочу этим сказать: то, что кажется нормальным кодом на одном уровне знаний, становится быдлокодом на следующей ступеньке.
// peregruz.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class cont
{
cont();
cont(int x){X=new int(x);}
cont(const cont&);
~cont (){delete X; X=0;}
int GetX()const{return *X;}
void SetX(int x){*X=x;}
const cont operator++(int x);
const cont & operator++();
cont & operator =( const cont&);
private:
int *X;
};
cont::cont()
{
X=new int(5);
}
cont::cont(const cont &rhs)
{
X=new int;
*X=rhs.GetX();
}
const cont cont::operator ++(int x)
{
cont C;
C=*this;
++(*X);
return C;
}
const cont & cont::operator ++()
{
++(*X);
return *this;
}
cont & cont::operator =(const cont & rhs)
{
if(this==&rhs)
return *this;
*X=rhs.GetX();
return *this;
}
int _tmain(int argc, _TCHAR* argv[])
{
cont x, y(9);
x++;
++y;
cout<<x.GetX()<<"\n";
cout<<y.GetX()<<"\n";
x=y;
cout<<x.GetX()<<"\n";
cout<<y.GetX()<<"\n";
system("pause");
return 0;
}
1) Господа, подскажите - в каких случаях нужно освобождать указатели, а в каких нет.
В данный момент интересует дескриптор окна в виде IntPtr, возращенный WinAPI'шной функцией. Логика подсказывает, что это всего лишь номер, и делать с ней ничего не нужно. С другой стороны, кто его знает - как эта цифра ко мне попала. Может, ее добавили в какой-нибудь тайный регистр и будет она жить в нем вечно, пока не умрет процесс. Подскажите. :) Буду благодарен за ссылку на какую-нибудь статью по теме. Также интересуют безопасные указатели и случаи, когда их нужно применять.
2) Существует ли корректный способ парсить числа с плавающей точкопятой? Задача тривиальна - "177.4" и "177,4" должны распарситься, как 177.4 в системе с любой локалью и разделителем. Единственный найденный мною способ - объявить формат, н.п. с точкой, после чего все запятые в строке заменить на точку.
Сразу замечу, что тема была как следует обгуглена и на наших и на забугорных сайтах. Поиск результатов не дал. Но попрошу перед любым ответом на этот вопрос проверить свой способ на работоспособность! InvariantCulture не поможет! Канадская локаль не поможет! Исключение разделителей разрядов не поможет! В результате всех виденных мною способов, парсинг одного из чисел либо выдаст исключение, либо одно станет 177.4, а другое - 1774.
Заранее благодарю за любую помощь!
#include <iostream>
using namespace std;
int main()
{
float p0 = 121.1;
float p1 = 121.2;
float p2 = 121.3;
int l0, l1, l2;
l0 = (int)(p0 * 10.0);
l1 = (int)(p1 * 10.0);
l2 = (int)(p2 * 10.0);
cout << l0 << endl << l1 << endl << l2 << endl;
return 0;
}
вывод программы:
1210
1211
1213
Насколько я представляю правила преобразования типов, при проведении промежуточных вычислений, при вычислении l0 - l2, сначала вычисляется значение в скобках типа float, затем результат преобразовывается к int. Объясните в чем дело.
Из списка из лабораторной №5, выбрать объекты одного из производных типов и добавить их в контейнер vector стандартного класса из STL. Преобразовать контейнер vector в контейнер list или map, указав границы копирования с помощью итераторов. Применить ко второму контейнеру один из стандартных методов сортировки библиотеки STL.
Подскажите,пожалуйста,с чего начать и как,что такое контейнеры и итераторы?
1) Господа, подскажите - в каких случаях нужно освобождать указатели, а в каких нет.
В данный момент интересует дескриптор окна в виде IntPtr, возращенный WinAPI'шной функцией. Логика подсказывает, что это всего лишь номер, и делать с ней ничего не нужно. С другой стороны, кто его знает - как эта цифра ко мне попала. Может, ее добавили в какой-нибудь тайный регистр и будет она жить в нем вечно, пока не умрет процесс. Подскажите. :) Буду благодарен за ссылку на какую-нибудь статью по теме. Также интересуют безопасные указатели и случаи, когда их нужно применять.
Может, я не правильно понял вопрос, но попробую ответить. Если под освобождением указателя ты имеешь ввиду освобождение памяти, выделенной под него, то с дескриптором окна (HWND) делать ничего не нужно, так как это забота WinAPI функций создания (CreateWindow) и уничтожения окна (DestroyWindow).
А самому освобождать память под указателем приходится тогда, когда сам же и выделил память (например, оператором new в C++). Или если это указано в описании какой-то функции, что она выделяет память, возвращает указатель, а клиент должен сам потом эту память освободить. Ну а то, что ты видишь цифру - это содержимое указателя, то есть тот адрес, куда он указывает.
То есть корректного нет. =\ Предложенный вариант в общем-то понравился. :) Только LINQ там лишние - два прохода делает. А операции парсинга все-таки должны оставаться быстрыми. Спасибо!
artem_kvadro
Хм... вот это "Или если это указано в описании какой-то функции, что она выделяет память, возвращает указатель, а клиент должен сам потом эту память освободить." как раз и смущает... Ладно, благодарю, с окнами хоть все более-менее понятно.
дана квадратная матрица порядка А
найти сумму элементов по периметру матрицы и под побочной диагональю
///////Размер строчек и столбцов вводится через #define .
2) Программа принимает число от пользователя для постройки маленькой матрицы(меньше,чем первая).
3)На экран выводится маленькая матрица , сумма цифр которой должна быть наибольшей (если этой маленькой матрицей проверять большую) .
На пример :
Большая матрица
234 567 21
367 345 134
12 16 34
Число введённое пользователем : 2
Маленькая матрица должна быть такой :
234 567
367 345
Помогите пожалуйста решить . Мозги закипели уже =) Я понимаю , что нельзя писать , но буду очень благодарен если вы мне сможете чем то помочь .до завтра (до 23,55 нужно сдать) ,
Мои потуги выглядят так (только это не работает + я не знаю КАК СОЗДАТЬ матрицу размером [k][k] без #define ; k -число введённое пользователем) :
#define S 3
#define R 3
#define G S*R
void main()
{
int arrt
int i,j,l,f,w,q;
int k,max[G],x=0,y=0;
printf("Enter positive integer smaller than 2000\n");
////////////////Entering maarah
for(i=0;i<S;i++)
{
for(j=0;j<R;)
{
printf("in place : [%d][%d]",i,j);
scanf("%d",&arrt[j]);
while(!(arrt[j]<2000))
{
printf("Wrong number, try again! The place is : [%d][%d] ",i,j);
scanf("%d",&arrt[j]);
}
j++;
}
}
//////Ebtering of k
printf("Enter positive integer small than S and R\n");
scanf("%d",&k);
//////Checking if k is correct for the item 3 .
while(!(k<=S && k<=R))
{
printf("Wrong number, try again! ");
scanf("%d",&k);
}
////Printing of Maarah
for(i=0;i<S;i++)
{
for(j=0;j<R;j++)
{
printf(" |%d| ",arrt[j]);
}
printf("\n");
}
printf("\n");
for(w=0;w<(S-k+1);w++)
{
for(q=0;q<(R-k+1);q++)
{
for(i=w;i<k+w;i++)
{
for(j=q;j<k+q;j++)
{
max[j]+=arrt[j];
if(max[q]>max[q-1])
{
maxarr[j]=arrt[j];
}
}
}
}
}
for(i=0;i<S;i++)
{
for(j=0;j<R;j++)
{
printf(" |%d| ",maxarr[j]);
}
printf("\n");
}
}
В любом случае спасибо .
Файл открыт на запись, надо перейти на заданную строку и изменить там данные.
Заранее спасибо!
1. Стандарт языка С++
2. Авторы: Дейтл; Страуструп; Шилдт и Майерс (почти любые их книги о С++, новее - лучше)
3. По шаблонам: Вандервурд + Джосаттис
вообще о книгах есть тема соответствующая.
1 - каким модулем пользоваться в Visual Studio
2 - может кто знает где посмотреть готовые блоки с параметрическим 3D
3 - что посоветуете
3 - что посоветуете
внятно сформулировать вопрос