Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

RE: Вопросы по C/C++ (Для новичков)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> RE: Вопросы по C/C++ (Для новичков)
Имя
Сообщение << Старые топики   Новые топики >>
RE: Вопросы по C/C++ (Для новичков) - 2009-12-15 16:15:11.293333   
Ins3t

Сообщений: 9
Оценки: 0
Присоединился: 2009-07-19 14:08:21.010000
2paKemoSHA
#include &lt;stdio.h&gt; int main () { FILE * f; f= fopen ("test.txt","wt+"); if (f !=NULL) { fputs ("str1",f); fclose (f); } return 0; }
Post #: 921
RE: Вопросы по C/C++ (Для новичков) - 2009-12-15 22:04:35.996666   
GrafMine

Сообщений: 23
Оценки: 0
Присоединился: 2009-04-29 17:08:19.376666
quote:

ORIGINAL: GrafMine

Помогите в решении задачи пожалуйста:
Полями структуры есть координаты точки.Узнать три экземпляра структуры и найти периметр триугольника ,что создают эти точки.

очень нуждаюсь в решении задачи. надеюсь на вашу отзывчивость…

quote:

ORIGINAL: psina007

Детский сад, IMHO.

#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; struct point { float X; float Y; }; int main(int argc,char* argv[]) { point a,b,c; a.X = 10; a.Y = 78; b.X = 1.5; b.Y = 7.8; c.X = 7.01; c.Y = 9.45; double P = sqrt((a.X - b.X)*(a.X - b.X)+(a.Y - b.Y)*(a.Y - b.Y)) + sqrt((a.X - c.X)*(a.X - c.X)+(a.Y - c.Y)*(a.Y - c.Y)) + sqrt((c.X - b.X)*(c.X - b.X)+(c.Y - b.Y)*(c.Y - b.Y)); cout &lt;&lt; P; }


Ответ :

до этого поста:

quote:

ORIGINAL: Lost_boy

GrafMine,&nbsp; начинай пользоваться гуглом, без него ты далеко не уйдешь.
http://dfe3300.karelia.ru/koi/posob/c/c.htm
http://www.intuit.ru/department/se/pbmsu/8/
http://www.codenet.ru/progr/cpp/sprd/
Изучай, там все описано, и вопросы сами исчезнут. Последняя ссылка это список функций С, с полным описанием.
 


я считал этот пример как правильный(может он и правильный только в С++ ;) ),
пришло время разбирать пример,и тут я посмотрел на этот пример что долекий,что мой препод =) было минутное молчание =))) с вот таким вот лицом -> (о_О)  ;))))

В общем я так подумал и решил его сделать , только вот не знаю как его начать;),соответственно помогите пробить "бетон" землю  постараюсь капнуть я сам …
-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-
З.Ы.вот пример каторый розберали целую прошлую страничку  :

#include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main( void ) { int i, n1, n2, sum = 0; int a1[] = { 1, 2, 3, 4 }; int a2[] = { 5, 6, 7, 8, 9 }; n1 = sizeof( a1 ) / sizeof( *a1 ); n2 = sizeof( a2 ) / sizeof( *a2 ); for ( i = 0; i &lt; n1; i++ ) sum += a1[i]; for ( i = 0; i &lt; n2; i++ ) sum += a2[i]; printf( "Summ = %d", sum ); getch(); return 0; }
Увы не рабочий =( да и с сумой у него не совсем лады…
вот на замену него код программы

#include &lt;stdio.h&gt; int main() { int *a1,*a2; int sum1=0,sum2=0,n1,n2; printf("Vvedite dlinny pervogo massiva "); scanf("%d",&amp;n1); printf("Vvedite dlinny vtorogo massiva "); scanf("%d",&amp;n2); a1=new int[n1]; a2=new int[n2]; for(int i=0;i&lt;n1;i++) a1[i]=rand(); for(int i=0;i&lt;n2;i++) a2[i]=rand(); for(int i=0;i&lt;n1;i++) sum1+=a1[i]; for(int i=0;i&lt;n2;i++) sum2+=a2[i]; if(sum1&lt;sum2)printf("Summa elementov vtorogo massiva bolwe\n"); else printf("Summa elementov pervogo massiva bolwe\n"); return 0; }
только выдает вот эти ошибки :
Вот ошибки какие выдает компилятор:
12: Function 'rand' should have a prototype
13,15,16: Multiple declaration for 'i'
помогите с ними =)

Post #: 922
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 01:20:46.673333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
www.translate.google.com


quote:

ORIGINAL: GrafMine

З.Ы.вот пример каторый розберали целую прошлую страничку  :

#include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main( void ) { int i, n1, n2, sum = 0; int a1[] = { 1, 2, 3, 4 }; int a2[] = { 5, 6, 7, 8, 9 }; n1 = sizeof( a1 ) / sizeof( *a1 ); n2 = sizeof( a2 ) / sizeof( *a2 ); for ( i = 0; i &lt; n1; i++ ) sum += a1[i]; for ( i = 0; i &lt; n2; i++ ) sum += a2[i]; printf( "Summ = %d", sum ); getch(); return 0; }
Увы не рабочий =( да и с сумой у него не совсем лады…
вот на замену него код программы



Нук, что тут не работает?
Post #: 923
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 07:12:54.486666   
GrafMine

Сообщений: 23
Оценки: 0
Присоединился: 2009-04-29 17:08:19.376666
quote:

ORIGINAL: _SaZ_

www.translate.google.com


quote:

ORIGINAL: GrafMine

З.Ы.вот пример каторый розберали целую прошлую страничку&nbsp; :

#include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main( void ) { int i, n1, n2, sum = 0; int a1[] = { 1, 2, 3, 4 }; int a2[] = { 5, 6, 7, 8, 9 }; n1 = sizeof( a1 ) / sizeof( *a1 ); n2 = sizeof( a2 ) / sizeof( *a2 ); for ( i = 0; i &lt; n1; i++ ) sum += a1[i]; for ( i = 0; i &lt; n2; i++ ) sum += a2[i]; printf( "Summ = %d", sum ); getch(); return 0; }
Увы не рабочий =( да и с сумой у него не совсем лады…
вот на замену него код программы



Нук, что тут не работает?

Извиняюсь ,видать не доглядел ,ну сума не соответствует примеру =)
можно так сделать ? :

#include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main( void ) { int i, n1, n2, sum1, sum2 = 0; int a1[] = { 1, 2, 3, 4 }; int a2[] = { 5, 6, 7, 8, 9 }; n1 = sizeof( a1 ) / sizeof( *a1 ); n2 = sizeof( a2 ) / sizeof( *a2 ); for ( i = 0; i &lt; n1; i++ ) sum1 += a1; for ( i = 0; i &lt; n2; i++ ) sum2 += a2; printf( "Summ1 = %d", sum1 ); printf( "Summ2 = %d", sum2 ); getch(); if(sum1&lt;sum2)printf("Summa elementov vtorogo massiva bolwe\n"); else printf("Summa elementov pervogo massiva bolwe\n") return 0; } [i][i]
выдает след.ошибки:
14,16: Illegal use of pointer{sum1 +=<здесь курсор>a1;}
24: 'a1','a2' is asigned a value that is never used

Post #: 924
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 11:35:46.136666   
VAN32

Сообщений: 20
Оценки: 0
Присоединился: 2009-11-06 20:37:37.856666
Чого при вставки текста кодом Memo->Lines->Add("Text\text2\text3"); недобавляется символ " \ "
Post #: 925
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 11:45:43.426666   
psina007

Сообщений: 98
Оценки: 0
Присоединился: 2009-05-09 22:41:33.580000
Потому что "\t" это табуляция. Попробуй так:
Memo-&gt;Lines-&gt;Add("Text\\text2\\text3");
Post #: 926
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 11:59:07.140000   
VAN32

Сообщений: 20
Оценки: 0
Присоединился: 2009-11-06 20:37:37.856666

quote:

ORIGINAL: psina007

Потому что "\t" это табуляция. Попробуй так:
Memo-&gt;Lines-&gt;Add("Text\\text2\\text3");


Работает спасибо
Post #: 927
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 12:04:18.123333   
Lost_boy

Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
GrafMine, прочитай основные сведения по языку, переменным, массивам и т.д. Ссылки я тебе уже дал! Ты пишешь бред.
for ( i = 0; i &lt; n1; i++ ) sum1 += a1; for ( i = 0; i &lt; n2; i++ ) sum2 += a2; Так делать нельзя! Ты пойми а1 это массив и суммируешь ты его по элементно, а чтобы получить доступ к каждому эл-ты мы используем цикл и переменную i которая на каждой итерации меняется, тем самым мы получаем сначала а1[0], потом  a1[1], a1[2].. и т.д.

quote:

Найти для каждого из массивов сумму всех элементов и сравнить полученные значения.
Результат сравнения отобразить на экран

Либо ты не понимаешь своего задания, либо, что вероятней, ты так и не понимаешь основ. Вот подправил немного код, все просто и разжевано:
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main() { int i, n1, n2, sum = 0, sum1 = 0; int a1[] = { 1, 2, 3, 4 }; int a2[] = { 5, 6, 7, 8, 9 }; n1 = sizeof( a1 ) / sizeof( *a1 ); n2 = sizeof( a2 ) / sizeof( *a2 ); for ( i = 0; i &lt; n1; i++ ) &nbsp; sum += a1[i]; for ( i = 0; i &lt; n2; i++ ) &nbsp; sum1 += a2[i]; printf( "Summ = %d", sum ); printf( "\nSumm1 = %d", sum1 ); if (sum &gt; sum1) &nbsp; &nbsp; printf( "\nSumm &gt; Summ1 "); if (sum &lt; sum1) &nbsp; &nbsp; printf( "\nSumm &lt; Summ1 "); else &nbsp; &nbsp; printf( "\nSumm = Summ1"); getch(); return 0; }
Post #: 928
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 12:09:34.436666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333

quote:

ORIGINAL: GrafMine
Извиняюсь ,видать не доглядел ,ну сума не соответствует примеру =)

Да, потому что я считал общую сумму.

quote:

ORIGINAL: GrafMine
можно так сделать ? :

выдает след.ошибки:
14,16: Illegal use of pointer{sum1 +=&lt;здесь курсор&gt;a1;}
24: 'a1','a2' is asigned a value that is never used

Естественно выдаёт.

Сумма 1 не инициализирована: int i, n1, n2, sum1, sum2 = 0; Ошибка компиляции: (бред полный, ты походу даже теорию не читал по массивам) for ( i = 0; i &lt; n1; i++ ) sum1 += a1; for ( i = 0; i &lt; n2; i++ ) sum2 += a2; Ты тут вместо наращивания суммы пытаешься n раз прибавлять к переменным один и тот же АДРЕС нулевого элемента.
В общем, иди учи теорию. Потом только приходи с задачами.
Post #: 929
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 12:12:05.220000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333

quote:

ORIGINAL: Lost_boy

if (sum &gt; sum1)
  printf( "\nSumm &gt; Summ1 ");
else
if (sum &lt; sum1)
  printf( "\nSumm &lt; Summ1 ");
else
  printf( "\nSumm = Summ1");



Else забыл, а так в общем правильно ;).
Post #: 930
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 12:20:29.436666   
Lost_boy

Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
quote:

ORIGINAL: _SaZ_

quote:

ORIGINAL: Lost_boy

if (sum &gt; sum1)
&nbsp; printf( "\nSumm &gt; Summ1 ");
else
if (sum &lt; sum1)
&nbsp; printf( "\nSumm &lt; Summ1 ");
else
&nbsp; printf( "\nSumm = Summ1");



Else забыл, а так в общем правильно ;).

К чему он тут)) ведь без него все прекрасно работает.
Post #: 931
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 12:27:55.490000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Если sum > sum1 то вывод будет такой:

printf( "\nSumm > Summ1 ");
printf( "\nSumm = Summ1");
Post #: 932
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 13:08:37.656666   
Lost_boy

Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
quote:

ORIGINAL: _SaZ_

Если sum &gt; sum1 то вывод будет такой:

printf( "\nSumm &gt; Summ1 ");
printf( "\nSumm = Summ1");

Согласен не углядел.
Post #: 933
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 14:21:52.790000   
psina007

Сообщений: 98
Оценки: 0
Присоединился: 2009-05-09 22:41:33.580000
Кстати, GrafMine, я нашел способ как задать произвольную длину массива.
int arrsize = 0; std::cin &gt;&gt; arrsize; int* arr = new int[arrsize];
Post #: 934
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 14:35:13.366666   
Lost_boy

Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
psina007, он на С пишет, по крайней мере пытается, так что спрячь свои "cin>>".
З.Ы. Юзаем scanf вместо cin
Post #: 935
RE: Вопросы по C/C++ (Для новичков) - 2009-12-16 14:43:43.306666   
psina007

Сообщений: 98
Оценки: 0
Присоединился: 2009-05-09 22:41:33.580000
Из виду упустил, то что он на Си пишет.
Post #: 936
RE: Вопросы по C/C++ (Для новичков) - 2009-12-17 01:05:56.036666   
GrafMine

Сообщений: 23
Оценки: 0
Присоединился: 2009-04-29 17:08:19.376666
quote:

ORIGINAL: GrafMine

quote:

ORIGINAL: GrafMine

Помогите в решении задачи пожалуйста:
Полями структуры есть координаты точки.Узнать три экземпляра структуры и найти периметр триугольника ,что создают эти точки.

очень нуждаюсь в решении задачи. надеюсь на вашу отзывчивость…

quote:

ORIGINAL: psina007

Детский сад, IMHO.

#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; struct point { float X; float Y; }; int main(int argc,char* argv[]) { point a,b,c; a.X = 10; a.Y = 78; b.X = 1.5; b.Y = 7.8; c.X = 7.01; c.Y = 9.45; double P = sqrt((a.X - b.X)*(a.X - b.X)+(a.Y - b.Y)*(a.Y - b.Y)) + sqrt((a.X - c.X)*(a.X - c.X)+(a.Y - c.Y)*(a.Y - c.Y)) + sqrt((c.X - b.X)*(c.X - b.X)+(c.Y - b.Y)*(c.Y - b.Y)); cout &lt;&lt; P; }




В общем я так подумал и решил его сделать , только вот не знаю как его начать;),соответственно помогите пробить "бетон" землю&nbsp; постараюсь капнуть я сам …



и обьясните что делает эта строка:
  result += pow(x, 2) * pow(y, 0.5); и как здесь работает "+="? =))
Post #: 937
RE: Вопросы по C/C++ (Для новичков) - 2009-12-17 01:26:30.163333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
В гугле напиши:

operator +=
pow C++
Post #: 938
RE: Вопросы по C/C++ (Для новичков) - 2009-12-17 13:56:56.680000   
VAN32

Сообщений: 20
Оценки: 0
Присоединился: 2009-11-06 20:37:37.856666
Как сделать в Memo штоб текст добавлялся В опредильною строку.

например:

Було:
Txt
Txt
Txt
Txt

Стало:
Txt
VAN32
Txt
Txt
Post #: 939
RE: Вопросы по C/C++ (Для новичков) - 2009-12-17 14:55:01.446666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
0. Выучить русский язык
1. Удалить в нужной строке старый текст
2. Добавить новый
Post #: 940
RE: Вопросы по C/C++ (Для новичков) - 2009-12-20 12:10:10.803333   
Zmaster

Сообщений: 930
Оценки: 0
Присоединился: 2007-02-09 19:02:43.500000
http://articles.org.ru/lessond/les12.php
Post #: 941
RE: Вопросы по C/C++ (Для новичков) - 2009-12-21 10:50:17.550000   
Actek

Сообщений: 604
Оценки: 0
Присоединился: 2008-02-24 10:24:14.710000
вопрос. с помощью GetAsyncKeyState получаем виртуальный код клавиши в переменную key
nScan= MapVirtualKeyEx(key, 0, layout); chcount = ToAscii(key, nScan, buf, &ch, 0); потом переходим в ascii, чтобы работать с русской раскладкой.
и когда пишу
printf( "%с", (char)ch);
то пишутся только маленькие буквы. Как учитывать заглавные?
Post #: 942
RE: Вопросы по C/C++ (Для новичков) - 2009-12-21 11:19:09.423333   
psina007

Сообщений: 98
Оценки: 0
Присоединился: 2009-05-09 22:41:33.580000
Думаю надо следить за тем или нажата кнопка Shift, и если она нажата, то букву преобразуем в заглавную.
Post #: 943
RE: Вопросы по C/C++ (Для новичков) - 2009-12-21 12:07:24.860000   
Actek

Сообщений: 604
Оценки: 0
Присоединился: 2008-02-24 10:24:14.710000
ну то что следить шифтом и кэпсом это понятно, но почему не выводит заглавные? преобразовывать через дополнительный массив(имхо не рационально)
Post #: 944
RE: Вопросы по C/C++ (Для новичков) - 2009-12-21 12:14:40.006666   
psina007

Сообщений: 98
Оценки: 0
Присоединился: 2009-05-09 22:41:33.580000
Зачем дополнительный массив? Можно просто сделать так:
char convertLetter(char c) { if((int)c &gt;= (int)'a' && (int)c &lt;= (int)'z') return (char)((int)c + 32); else if((int)c &gt;= (int)'A' && (int)c &lt;= (int)'Z') return (char)((int)c - 32); }
Post #: 945
RE: Вопросы по C/C++ (Для новичков) - 2009-12-21 12:17:04.600000   
Actek

Сообщений: 604
Оценки: 0
Присоединился: 2008-02-24 10:24:14.710000
это ты описал работу с латиницей. Тогда легче написать toupper()/tolower().
а меня интересует кириллица
Post #: 946
RE: Вопросы по C/C++ (Для новичков) - 2009-12-21 21:03:32.673333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
А разница?
Post #: 947
RE: Вопросы по C/C++ (Для новичков) - 2009-12-22 05:59:36.210000   
Actek

Сообщений: 604
Оценки: 0
Присоединился: 2008-02-24 10:24:14.710000
то что попробуй прибавь к букве А 32 и посмотри.
проблему решил с помощью toupper((char)ch, locale("Russian")) -работает с русскими.

теперь вопрос при GetKeyState(VK_SHIFT) < 0, после отпускания шифта первая нажатая буква все равно большая.
Post #: 948
RE: Вопросы по C/C++ (Для новичков) - 2009-12-22 13:10:11.493333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
quote:

ORIGINAL: Actek
то что попробуй прибавь к букве А 32 и посмотри.

А ты попробуй прибавь не какое-то волшебное, непонятно откуда взявшееся, число 32, а примерно так: c += 'ы' - 'Ы';
Post #: 949
RE: Вопросы по C/C++ (Для новичков) - 2009-12-22 19:46:36.446666   
pricolist

Сообщений: 17
Оценки: 0
Присоединился: 2009-12-21 21:11:38.130000
народ не могу найти косяк в цикле где одно отрицательное число

#include <math.h>
#include <iostream>
using namespace std;
int main (void)
{
double x,y,z,p,p1,p2,p3,m,r,r1,r2,r3,t=0; // t- счётчик
cout<< "vvedite tri chisla"<<endl;
cin>>x>>y>>z;
if (x>=0&&y<0&&z>=0||x<0&&y>=0&&z>=0||x>=0&&y>=0&&z<0)// 1 отрицательное
{ if(x>=0)
p1=x;
else m=x;

if(y>=0)
p2=y;
else m=y;

if(z>=0)
p3=z;
else m=z;

if(p1<=p2&&p1<=p3)
{r=m*p1;
cout<<"odno otrijatelinoe"<<r<<endl;};

if(p2<=p3&&p2<=p1)
{r=m*p2;
cout<<"odno otrijatelinoe"<<r<<endl;};

if(p3<=p2&&p3<=p1)
{r=m*p3;
cout<<"odno otrijatelinoe"<<r<<endl;};
};
if(x>=0&&y<0&&z<0 || x<0&&y>=0&&z<0|| x<0&&y<0&&z>=0)// 2 отрицательного
{
if(x>=0)
p=x;
else
{
t++;
r1=x/2;
cout<<t<<" otrijatelinoe = "<<r1<<endl;};

if(y>=0)
p=y;
else {
t++;
r2=y/2;
cout<<t<<" otrijatelinoe = "<<r2<<endl;};

if(z>=0)
p=z;
else
{
t++;
r3=z/2;
cout<<t<<" otrijatelinoe = "<<r3<<endl;};
};


if(x>=0&&y>=0&&z>=0||x<0&&y<0&&z<0)// другое
cout<<"net yslovi9"<<endl;



return 0;
}
Post #: 950
RE: Вопросы по C/C++ (Для новичков) - 2009-12-22 19:56:20.506666   
pricolist

Сообщений: 17
Оценки: 0
Присоединился: 2009-12-21 21:11:38.130000
на кучу переменных не обращайте внимания [:o]
Post #: 951
RE: Вопросы по C/C++ (Для новичков) - 2009-12-22 20:20:06.833333   
pricolist

Сообщений: 17
Оценки: 0
Присоединился: 2009-12-21 21:11:38.130000
а всё нашел
Post #: 952
RE: Вопросы по C/C++ (Для новичков) - 2009-12-24 17:24:04.870000   
GrafMine

Сообщений: 23
Оценки: 0
Присоединился: 2009-04-29 17:08:19.376666
Задачка:

Найти значения выражения. Полученый результат занести в свободный файл

вот что я накатал:

#include &lt;stdio.h&gt; #include &lt;math.h&gt; void main() { FILE*FL; float G; int a,b; FL=fopen("input.txt","r"); if (FL==NULL) { puts ("owubka read"); } else { fscanf(FL,"%i%i",&amp;a,&amp;b); fclose(FL); } G=(log(pow(a,12)-sqrt(pow(a,7))*exp(b)/(cos(13*(a*a))))); printf("%f",G); { FILE*fp; fp=fopen("output.txt","w"); if (FL==NULL) { puts ("owubka write"); } else { fprintf(fp, "%i",G); fclose(fp); } } }
Ну есть одно НО, в файле output.txt всегда получается  "0", почему ? где ошибка =)
Post #: 953
RE: Вопросы по C/C++ (Для новичков) - 2009-12-24 17:35:44.426666   
GrafMine

Сообщений: 23
Оценки: 0
Присоединился: 2009-04-29 17:08:19.376666
quote:

ORIGINAL: GrafMine
Ну есть одно НО, в файле output.txt всегда получается&nbsp; "0", почему ? где ошибка =)

исправил ошибку,изменив :
fprintf(fp,"%i",G);
на
fprintf(fp,"%f",G);
Теперь работает прекрасно;), сейчас пишу другую задачку такого-же типа, возможно потребуются ваша подсказка:)
Post #: 954
RE: Вопросы по C/C++ (Для новичков) - 2009-12-26 16:25:32.140000   
Kadead

Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
Добрый день.Подскажите пожалуйста как создать двумерный динамический массив.
Вектор делаю так:
#include &lt;iostream&gt; using namespace std; int main() { int *ukazatel = new int [10]; return 0; }
И еще вопрос про динамичность данного массива.
Как я понял в С++ нельзя сделать вот так:
#include &lt;iostream&gt; using namespace std; int main() { int n; cin &gt;&gt; n; int arr[n][n]; return 0; } компилятор ругается.Но в книжке по которой я учусь написано что с помощью указателей можно обойти это ограничение, но не написано как.
попробывал сделать вот так:
#include &lt;iostream&gt; using namespace std; int main() { int *ukazatel = new int; cin&gt;&gt;*ukazatel; double arr [*ukazatel]; return 0; }
не получилось. компилятор снова выдал ошибки. Подскажите пожалуйста как это реализовать.
Post #: 955
RE: Вопросы по C/C++ (Для новичков) - 2009-12-26 16:37:01.416666   
Zmaster

Сообщений: 930
Оценки: 0
Присоединился: 2007-02-09 19:02:43.500000
Двумерный массив - это, скажем так, указатель указателей на какой-либо тип данных. Следовательно, пишем:

int **arr; //arr - указатель указателей на тип int
Далее нужно под это дело выделить память:

arr=new int*[5]; // Выделяем память под первый указатель, т.е. получили массив из пяти строк, если можно так сказать.
for(int i=0;i&lt;=4;i++) arr[i]=new int[4]; // Выделяем память в цикле под столбцы, т.е. получили массив из 5 строк, в каждой строке 4 столбца.
А лучше, чтобы с этим не мучаться, покури в сторону класса vector, который добрый дядя Бьерн Страуструп создал, чтобы люди не мучались.
Post #: 956
RE: Вопросы по C/C++ (Для новичков) - 2009-12-26 17:03:00.700000   
GrafMine

Сообщений: 23
Оценки: 0
Присоединился: 2009-04-29 17:08:19.376666
Помогите в решении задачи пожалуйста:

Полями структуры есть координаты точки.Узнать три экземпляра структуры и найти периметр триугольника ,что создают эти точки.
код программы на Си(для начинающих)
данные нужно взять с файла, и записать в файл,очень нуждаюсь в решении задачи.
Post #: 957
RE: Вопросы по C/C++ (Для новичков) - 2009-12-26 17:03:45.786666   
Kadead

Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
Все вроде бы уяснил как это делается)))

У тебя там ошибка кстати исправь
arr=new int*[5];
иначе компилятор ругается о несовместимости типов.Спасибо за помощь.А до классов мне пока еще рановато наверное.Пока буду придерживаться как в книжке.потом посмотрю.
Post #: 958
RE: Вопросы по C/C++ (Для новичков) - 2009-12-26 17:38:01.120000   
Kadead

Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
GrafMine, я сам пока только учусь программированию на С++ и потому не умею работать с файлами.Если сумеешь организовать считывание из файла в поля структуры то вот тебе код программы. приспособлена для координат на плоскости.
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; struct put { double x; double y; }; int main() { setlocale (0,""); put A,B,C; /* тут считываешь данные в поля структуры из файла */ double AB=sqrt(pow(B.x-A.x,2)+pow(B.y-A.y,2)); double CB=sqrt(pow(B.x-C.x,2)+pow(B.y-C.y,2)); double AC=sqrt(pow(C.x-A.x,2)+pow(C.y-A.y,2)); double perim=AB+CB+AC; cout&lt;&lt;"Периметр треугольника: P="&lt;&lt;perim&lt;&lt;endl; return 0; }
Post #: 959
RE: Вопросы по C/C++ (Для новичков) - 2009-12-26 17:57:04.043333   
GrafMine

Сообщений: 23
Оценки: 0
Присоединился: 2009-04-29 17:08:19.376666
quote:

ORIGINAL: Kadead

GrafMine, я сам пока только учусь программированию на С++ и потому не умею работать с файлами.Если сумеешь организовать считывание из файла в поля структуры то вот тебе код программы. приспособлена для координат на плоскости.
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; struct put { double x; double y; }; int main() { setlocale (0,""); put A,B,C; /* тут считываешь данные в поля структуры из файла */ double AB=sqrt(pow(B.x-A.x,2)+pow(B.y-A.y,2)); double CB=sqrt(pow(B.x-C.x,2)+pow(B.y-C.y,2)); double AC=sqrt(pow(C.x-A.x,2)+pow(C.y-A.y,2)); double perim=AB+CB+AC; cout&gt;&gt;"Периметр треугольника: P="&lt;&lt;perim&lt;&lt;endl; return 0; }


Спасибо конечно, ну я учу язык Си =) до С++ есчо не доходил…. ;)
Post #: 960
Страниц:  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
Все форумы >> [Компилируемые языки] >> RE: Вопросы по C/C++ (Для новичков)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.