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

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

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

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> RE: Вопросы по C/C++ (Для новичков)
Имя
Сообщение << Старые топики   Новые топики >>
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 13:17:34.616666   
_SaZ_

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

ORIGINAL: sanday

#include &lt;iostream&gt; using namespace std; main () {    from (int x = 1; x &lt;= 10; x++) {       if (x == 5)          continue;       cout &lt;&lt; x &lt;&lt; " ";     }    cout &lt;&lt; endl &lt;&lt; "Использован continue для пропуска печати х == 5" &lt;&lt; endl;    return 0; } Просьба, ГОТОВЫЙ КОД НЕ ПИСАТЬ.
Подскажите, как в общем случае заменить continue, на структурированный эквивалент?



quote:

ORIGINAL: _SaZ_

#include &lt;iostream&gt; //... int main() { for (int x = 1; (x != 5) && (x &lt;= 10); x++) { } //... return 0; }


Переделываем:
#include &lt;iostream&gt; //... int main() { for (int x = 1; (x == 5) || (x &lt;= 10); x++) { } //... return 0; }

Готового кода тут нет. Я тебе пишу сразу ответ, т.к. теорию можешь и сам почитать, если мозгов хватит. Первый семестр технического вуза, основы алгоритмизации. Могу послать в гугл. И не надо меня минусовать за правильные ответы.
Post #: 1241
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 19:07:05.623333   
Spazm666

Сообщений: 2
Оценки: 0
Присоединился: 2010-03-03 19:02:02.850000
Доброго времени суток!

Это C# нужна ваша помощь
Общая постановка задачи:
Реализовать иерархию классов из индивидуального задания. Определить и использовать интерфейс “IFigure” – геометрическая фигура. В интерфейс включить методы вычисления площади (если это возможно) или объема (если это возможно)указанных фигур, а также свойства, связанные с соответствующими данными классов.
Фигура - Квадрат – Треугольник (данные - стороны)

У меня одна единственная ошибка в коде, которую я не знаю как устранить, вот собственно код:

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { interface IFigure { double Side1 {get; set; } void square(); void perimeter(); void halfperimeter(); } class kvadrat : IFigure { double sqr, prmtr, Side2, Side3, pp; public double Side1 { get { return Side1; } set { Side1 = 15; } } public kvadrat(double x, double y) { Side2 = x; Side3 = y; } public void halfperimeter() { pp = (Side1 + Side2 + Side3) / 2; } public void perimeter() { prmtr = 4 * Side1; Console.WriteLine("Периметр квадрата равен: " + prmtr); } public void square() { sqr = Math.Sqrt(pp * (pp - Side1) * (pp - Side2) * (pp - Side3)); Console.WriteLine("Площадь треугольника равна: " + sqr); } } class Program { static void Main(string[] args) { kvadrat one = new kvadrat(8.5, 7.5); one.perimeter(); one.square(); Console.ReadKey(); } } }
Spazm666, bb-тег code не забывай использовать.
Post #: 1242
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 19:25:38.880000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Ошибки (на вскидку):
1. Оффтоп.
2. Не используешь тэг для оформления сообщения. 3. Нет нормального выравнивания в коде =&gt; невозможно читать 4. double Side1 {get; set; } в интерфейсе не нужен 5. Side1 = 15; - что это за магия? Нужно Side1 = value; 6. Метод halfperimeter, да и вообще сам класс логически не верен, т.к. у квадрата 4 стороны ;). Причём равные. Ну и т.д. P.S. на будущее, стоит как минимум читать текст сообщения об ошибке, и приводить его на форуме, если проблемы с английским и компилированием.
Post #: 1243
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 19:27:13.910000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
—форум глюканул—
Post #: 1244
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 19:34:28.040000   
Spazm666

Сообщений: 2
Оценки: 0
Присоединился: 2010-03-03 19:02:02.850000

quote:

ORIGINAL: _SaZ_

Ошибки (на вскидку):
1. Оффтоп.
2. Не используешь тэг для оформления сообщения. 3. Нет нормального выравнивания в коде =&gt; невозможно читать 4. double Side1 {get; set; } в интерфейсе не нужен 5. Side1 = 15; - что это за магия? Нужно Side1 = value; 6. Метод halfperimeter, да и вообще сам класс логически не верен, т.к. у квадрата 4 стороны ;). Причём равные. Ну и т.д. P.S. на будущее, стоит как минимум читать текст сообщения об ошибке, и приводить его на форуме, если проблемы с английским и компилированием.

1. Извиняюсь за оффтоп не осилил 30 страниц кода.
3. Тоже прошу прощения копировал из Текстового редактора.
6. Прочитай задание вниматильнее это полупериметр треугольника у тебя походу проблемы с русским
Post #: 1245
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 19:43:55.670000   
_SaZ_

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

ORIGINAL: Spazm666
6. Прочитай задание вниматильнее это полупериметр треугольника у тебя походу проблемы с русским


Ты вообще сам читал своё задание? Где там хоть слово про полупериметр?

И я не про это. Формула нахождения полупериметра для квадрата s = side * 2; Откуда у твоего квадрата 3 стороны - я не понимаю.
Post #: 1246
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 20:08:25.010000   
_SaZ_

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

quote:

ORIGINAL: Spazm666
1. Извиняюсь за оффтоп не осилил 30 страниц кода.
3. Тоже прошу прощения копировал из Текстового редактора.

1. C# - это оффтоп в теме про С/С++
2. Пофиг, откуда копировать. Тэги есть для оформления кода Преподы от тебя хотят что-то вроде этого: [code]using System; using System.Collections.Generic; using System.Text; namespace BasicOOP { interface IFigure { double Square { get; } double HalfPerimeter { get; } double Volume { get; } double[] Sides { get; set; } } sealed class Kvadrat : IFigure { private double _side; public double Square { get { return _side * _side; } } public double HalfPerimeter { get { return _side * 2; } } public double Volume { get { throw new ApplicationException( "Property is undefined" ); } } public double[] Sides { get { double[] ret = { _side, _side, _side, _side }; return ret; } set { int count = value.Length; if ( count != 4 ) throw new ApplicationException( "Invalid count of sides" ); double side = value[0]; if ( !(side &gt; 0) ) throw new ApplicationException( "Invalid side length" ); foreach ( double s in value ) if ( s != side ) throw new ApplicationException( "Invalid side length" ); _side = side; } } } class Program { static void Main( string[] args ) { try { double[] sides = { 3, 3, 3, 3, }; IFigure fig1 = new Kvadrat(); fig1.Sides = sides; Console.WriteLine( "Square = {0}", fig1.Square ); Console.WriteLine( "Half perimeter = {0}", fig1.HalfPerimeter ); } catch ( ApplicationException ex ) { Console.WriteLine( "User error: {0}", ex.Message ); } catch ( Exception ex ) { Console.WriteLine( "General error: {0}", ex.Message ); } finally { Console.WriteLine( "\nPress any key..." ); Console.ReadKey(); } } } }
Post #: 1247
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 22:04:04.173333   
sanday

Сообщений: 41
Оценки: 0
Присоединился: 2010-02-06 12:52:26.896666
quote:

ORIGINAL: _SaZ_

Переделываем:
#include &lt;iostream&gt; //... int main() { for (int x = 1; (x == 5) || (x &lt;= 10); x++) { } //... return 0; }



у меня в результате компиляции, не получилось пропустить цифру 5, используя этот код
Post #: 1248
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 22:26:13.193333   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: sanday

quote:

ORIGINAL: _SaZ_

Переделываем:
#include &lt;iostream&gt; //... int main() { for (int x = 1; (x == 5) || (x &lt;= 10); x++) { } //... return 0; }



у меня в результате компиляции, не получилось пропустить цифру 5, используя этот код


логично
Post #: 1249
RE: Вопросы по C/C++ (Для новичков) - 2010-03-04 01:26:14.973333   
_SaZ_

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

Ну инвертируй if…

if ( x == 5 ) { } else { // что тебе там нужно в for делать }
И ещё раз. Учи теорию.
Post #: 1250
RE: Вопросы по C/C++ (Для новичков) - 2010-03-04 08:49:11.213333   
Papa James

Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
quote:

ORIGINAL: sanday

quote:

ORIGINAL: _SaZ_

Переделываем:
#include &lt;iostream&gt; //... int main() { for (int x = 1; (x == 5) || (x &lt;= 10); x++) { } //... return 0; }



у меня в результате компиляции, не получилось пропустить цифру 5, используя этот код

#include &lt;iostream&gt; //... int main() { for (int x = 1; (x != 5) && (x &lt;= 10); x++) { } //... return 0; } А так? )

Не, тож фигню написал )
Post #: 1251
RE: Вопросы по C/C++ (Для новичков) - 2010-03-04 10:24:21.110000   
Stil Free 2

Сообщений: 183
Оценки: 0
Присоединился: 2009-03-26 17:17:38.296666
Ахаха ну вы маньяки!:)
for (int x = 1; x &lt; 10; x++) { if (x==5) continue; }
Post #: 1252
RE: Вопросы по C/C++ (Для новичков) - 2010-03-04 10:37:34.453333   
_SaZ_

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

quote:

ORIGINAL: Stil Free 2

Ахаха ну вы маньяки!:)
for (int x = 1; x &lt; 10; x++) { if (x==5) continue; }


Читай условие, дурик. Написать без continue.
Post #: 1253
RE: Вопросы по C/C++ (Для новичков) - 2010-03-04 12:51:32.116666   
Papa James

Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
for (int x = 1; x &lt; 10; x++) { if (x!=5) { cout&lt;&lt;x&lt;&lt;endl; }; } так что ли?
Post #: 1254
RE: Вопросы по C/C++ (Для новичков) - 2010-03-04 13:21:46.066666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Синтаксический оверхед. После if не нужно ; ставить :D.
Post #: 1255
RE: Вопросы по C/C++ (Для новичков) - 2010-03-04 15:51:45.290000   
Papa James

Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
Бывает )
Post #: 1256
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 17:13:04.570000   
Kadead

Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
Подскажите пожалуйста с задачей.

Вот задача:
Описание:
Дана квадратная матрица A[n][n] (4<=n<=10).Герой находиться в точке a(n,0), ему необходимо попасть в точку b(0,n). За один ход он может переместиться либо на одну клетку вверх, либо на одну клетку вправо.В каждой клетке матрицы записано целое число w (0<=w<=255),характеризующее количество энергии при прохождении через эту клетку.
Задание:
Найти путь по которому надо пройти герою чтобы попасть в точку b с минимальными затратами энергии.
На выходе имеем, число затраченной энергии и на следующей строке координаты пути в виде [1,3][2,3]…
Если путей с одинаковыми затратами энергии несколько вывести их все
Post #: 1257
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 18:03:34.516666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
В чём помочь?
Post #: 1258
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 18:14:43.346666   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666

quote:

ORIGINAL: _SaZ_

В чём помочь?

Как всегда в написании за него листинга программы ((

Post #: 1259
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 18:34:49.546666   
Kadead

Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
2Sрam закройте рот любезнейший!

Навести на мысль как её решить.
Надо перебирать все возможные пути, а потом их сравнивать. Но как это сделать не оч представляю, точнее думаю через рекурсивную функцию да только что то не получается ее написать.
Post #: 1260
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 19:03:58.883333   
iidsp

Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
quote:

Навести на мысль как её решить.
Надо перебирать все возможные пути, а потом их сравнивать. Но как это сделать не оч представляю, точнее думаю через рекурсивную функцию да только что то не получается ее написать.

копай в сторону графов
Post #: 1261
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 19:17:00.436666   
Kadead

Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
Копаю, вот вроде как поиск в глубину хочу организовать.
Post #: 1262
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 19:19:16.896666   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666

quote:

ORIGINAL: Kadead

Копаю, вот вроде как поиск в глубину хочу организовать.

Тебе надо не в глубь, а вправо или вверх… в цикле… считать сумму потраченной энергии…
Post #: 1263
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 19:29:13.570000   
Kadead

Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
сделал, наконец то . ну типа вглубь метод такой же иду до конца, и если нечего исследовать возвращаюсь обратно на один шаг. вот что получилось.

void obhod (int arr[N][N],int x,int y) { arr[y][x]=2; sum += pole[y][x]; //cout&lt;&lt;x&lt;&lt;"\t"&lt;&lt;y&lt;&lt;"\n"&lt;&lt;endl; if(arr[y][x+1]==0 && x+1&lt;N) obhod(arr,x+1,y); if (arr[y-1][x]==0 && y-1&gt;=0) obhod(arr,x,y-1); if (arr[y][x+1]==100) if (sum&lt;ves_puti) { ves_puti=sum+pole[y][x+1]; cout&lt;&lt;sum+pole[y][x+1]&lt;&lt;endl; } if (arr[y-1][x]==100) if (sum&lt;ves_puti) { ves_puti=sum+pole[y-1][x]; cout&lt;&lt;sum+pole[y-1][x]&lt;&lt;endl; } arr[y][x]=0; sum -=pole[y][x]; return; } int main() { for (char i=0;i&lt;N;i++,system("CLS")) for (char j=0;j&lt;N;j++) { cin&gt;&gt;pole[i][j]; pole_versh[i][j]=0; } pole_versh[N-1][0]=1; pole_versh[0][N-1]=100; cout&lt;&lt;endl; for (char i=0;i&lt;N;i++,cout&lt;&lt;endl) for (char j=0;j&lt;N;j++) cout&lt;&lt;pole[i][j]&lt;&lt;"\t"; cout&lt;&lt;endl; for (char i=0;i&lt;N;i++,cout&lt;&lt;endl) for (char j=0;j&lt;N;j++) cout&lt;&lt;pole_versh[i][j]&lt;&lt;"\t"; obhod(pole_versh,0,N-1); for (char i=0;i&lt;N;i++,cout&lt;&lt;endl) for (char j=0;j&lt;N;j++) cout&lt;&lt;pole_versh[i][j]&lt;&lt;"\t"; cout&lt;&lt;ves_puti; return 0; } вроде бы работает.
теперь бы придумать как координаты пути сохранять.

P.S. В коде не обращайте внимание на различные дополнительные выводы, эт когда отлаживал для проверки нужно было.

Внимание!
Код выше работает неправильно, исправленная версия находится чуть ниже!
Post #: 1264
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 19:38:58.883333   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
quote:

теперь бы придумать как координаты пути сохранять.

Еще один многомерный массив или в файл а потом считать от туда…
Post #: 1265
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 19:58:59.133333   
Kadead

Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
это идея с массивом = ))) можно трехмерный сделать типа A[2][2*N][15] его хватит на 15 минимальных путей различных
Post #: 1266
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 21:53:59.810000   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: iidsp

quote:

Навести на мысль как её решить.
Надо перебирать все возможные пути, а потом их сравнивать. Но как это сделать не оч представляю, точнее думаю через рекурсивную функцию да только что то не получается ее написать.

копай в сторону графов


есть мнение, что поиск в ширину лежит просто-таки на поверхности. не стоит даже лопату в руки брать, право
Post #: 1267
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 23:26:34.870000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Волновой алгоритм. Дейкстра кажется предлагал его как алгоритм поиска кратчайшего пути в графе. И, по-сути, там используется поиск в ширину.
Post #: 1268
RE: Вопросы по C/C++ (Для новичков) - 2010-03-08 14:38:12.120000   
Kadead

Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
Если я не ошибаюсь волновой алгоритм нужен для поиска кратчайшего пути в лабиринте или обходе препятствий.Как его в моем случае применить не очень понимаю. = )))
Post #: 1269
RE: Вопросы по C/C++ (Для новичков) - 2010-03-08 17:18:21.140000   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: Kadead

Если я не ошибаюсь волновой алгоритм нужен для поиска кратчайшего пути в лабиринте или обходе препятствий.Как его в моем случае применить не очень понимаю. = )))


точно так же. количество энергии, необходимое для прохождения клетки заменяешь на минимально возможную энергию пути до клетки (минимум от перемещения в клетку слева или снизу)
Post #: 1270
RE: Вопросы по C/C++ (Для новичков) - 2010-03-08 17:45:22.090000   
Kadead

Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
Можно будет попробывать на досуге так сделать.
Ну и всем спасибо за помощь!Сделал наконец то)))Вот код если вдруг еще кому нибудь когда нибудь понадобится!
#include &lt;iostream&gt; using namespace std; const int N=4; int pole[N][N]; int pole_versh[N][N]; int ves_puti=999999; int n=0,sum=0,p_x=0,p_y=0; int put[2][2*N-2],is_put[2][2*N-2]; void obhod (int arr[N][N],int x,int y) { arr[y][x]=2; put[0][p_x]=x+1; put[1][p_y]=y+1; p_x++; p_y++; sum += pole[y][x]; if(arr[y][x+1]==0 && x+1&lt;N) obhod(arr,x+1,y); if (arr[y-1][x]==0 && y-1&gt;=0) obhod(arr,x,y-1); if (arr[y][x+1]==100) if (sum&lt;ves_puti) { ves_puti=sum; for (int i=0;i&lt;2*N-2;i++) { is_put[0][i]=put[0][i]; is_put[1][i]=put[1][i]; } } if (arr[y-1][x]==100) if (sum&lt;ves_puti) { ves_puti=sum; for (int i=0;i&lt;2*N-2;i++) { is_put[0][i]=put[0][i]; is_put[1][i]=put[1][i]; } } p_x--; p_y--; arr[y][x]=0; sum -= pole[y][x]; return; } int main() { for (char i=0;i&lt;N;i++,system("CLS")) for (char j=0;j&lt;N;j++) { cin&gt;&gt;pole[i][j]; pole_versh[i][j]=0; } pole_versh[N-1][0]=1; pole_versh[0][N-1]=100; for (char i=0;i&lt;N;i++,cout&lt;&lt;endl) for (char j=0;j&lt;N;j++) cout&lt;&lt;pole[i][j]&lt;&lt;"\t"; cout&lt;&lt;endl; obhod(pole_versh,0,N-1); cout&lt;&lt;ves_puti+pole[0][N-1]&lt;&lt;"\t"; cout&lt;&lt;endl; for (int i=0;i&lt;2*N-2;i++) cout&lt;&lt;"["&lt;&lt;is_put[0][i]&lt;&lt;","&lt;&lt;is_put[1][i]&lt;&lt;"]"; cout&lt;&lt;"["&lt;&lt;N&lt;&lt;",1]"&lt;&lt;endl; return 0; }
Post #: 1271
RE: Вопросы по C/C++ (Для новичков) - 2010-03-09 20:42:04.700000   
Merovingian

Сообщений: 59
Оценки: 0
Присоединился: 2008-12-29 13:55:36.936666
Подскажите как выделить память под массив элементов структурного типа?
например структура содержит:
struct s { int id; char name[10]; int count; } tttttt; Подскажите, если бы tttttt была бы массивом, как выделить под нее память?
Сначала обявляем миссив элементов структурного типа,
затем указываем количество этих элементов,
а потом выделяем память под указанное количество.
Как это сделать подскажите?
Post #: 1272
RE: Вопросы по C/C++ (Для новичков) - 2010-03-09 23:49:56.406666   
yurket

Сообщений: 69
Оценки: 0
Присоединился: 2009-05-04 23:47:54.993333
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; struct A{ int x; char name[30]; }; int main() { A *mas; int n; printf("\nEnter n "); // количество нужных тебе элементов scanf("%d", &n); mas=(A *)calloc(n, sizeof(A)); // делаешь все что нужно free(mas); // не забудь память освобождать =) return 0; }
Post #: 1273
RE: Вопросы по C/C++ (Для новичков) - 2010-03-10 00:43:29.910000   
_SaZ_

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

quote:

ORIGINAL: Merovingian

Подскажите, если бы tttttt была бы массивом, как выделить под нее память?
Сначала обявляем миссив элементов структурного типа,
затем указываем количество этих элементов,
а потом выделяем память под указанное количество
.
Как это сделать подскажите?


Выделенное - каламбур. Если ты указал количество элементов, то память компилятор выделит сам.

Почитай про статическое и динамическое выделение памяти.
Post #: 1274
RE: Вопросы по C/C++ (Для новичков) - 2010-03-10 22:43:10.176666   
sanday

Сообщений: 41
Оценки: 0
Присоединился: 2010-02-06 12:52:26.896666
Простая программа по определению простого числа, хочу чтобы вводили число , в результате выполнения функций, хочу, если число простое - возвращало само число , а если не простое - ничего не возвращало, помогите. Просто return или } не помогают, подскажите, что необходимо указать?
//Определение является ли число простое #include &lt;iostream&gt; using namespace std; int primeNumber(int); main () { &nbsp; int i; cout &lt;&lt; " Enter number: "; cin &gt;&gt; i;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; primeNumber (i); &nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; endl; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; system("pause"); return 0; } int primeNumber(int number) { &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; int summary = 0; &nbsp;&nbsp;&nbsp; &nbsp; for (int i = 1; i &lt;= number / 2; i++) { &nbsp;&nbsp;&nbsp;&nbsp; if (number % i == 0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; summary += i; &nbsp;&nbsp;&nbsp;&nbsp; else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue; &nbsp; } &nbsp; if (summary == 1) &nbsp;&nbsp;&nbsp;&nbsp; return number; &nbsp;&nbsp; else // не знаю что здесь должно быть &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;
Post #: 1275
RE: Вопросы по C/C++ (Для новичков) - 2010-03-11 01:34:15.526666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Что ты понимаешь под "ничего не возвращало". У твоей функции тип возвращаемого значение - int, значит и возвращать нужно int. Как вариант - возвращай 0.
Post #: 1276
RE: Вопросы по C/C++ (Для новичков) - 2010-03-11 06:24:42.266666   
sanday

Сообщений: 41
Оценки: 0
Присоединился: 2010-02-06 12:52:26.896666
нда, верно, не понятно выразился.
То есть после компиляции, на экран монитора ничего не выводило, т.е. к примеру, если число простое, то так
2
3
5
и т.д. прошу заметить число 4 не было выведено на экран монитора. Вот этого я и хочу)
Post #: 1277
RE: Вопросы по C/C++ (Для новичков) - 2010-03-11 10:12:59.673333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Возвращай не число, а строку, при необходимости - пустую. Только это глупо…
Post #: 1278
RE: Вопросы по C/C++ (Для новичков) - 2010-03-11 12:46:47.876666   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: sanday

если число простое - возвращало само число , а если не простое - ничего не возвращало


std::pair<bool, unsigned int> isPrime(unsigned int);

std::pair<bool, unsigned int> res = isPrime(num);
if(res.first) { std::cout << res.second; }

например так
Post #: 1279
RE: Вопросы по C/C++ (Для новичков) - 2010-03-11 13:25:02.936666   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
ещё проще сделать так:

bool isPrime(const unsigned int num) { ... return (summary == 1); } ... if(isPrime(c)) { std::cout &lt;&lt; c; }
Post #: 1280
Страниц:  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

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