RE: Вопросы по C/C++ (Для новичков)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 13:17:34.616666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
quote:
ORIGINAL: sanday
#include <iostream>
using namespace std;
main () {
from (int x = 1; x <= 10; x++) {
if (x == 5)
continue;
cout << x << " ";
}
cout << endl << "Использован continue для пропуска печати х == 5" << endl;
return 0;
}
Просьба, ГОТОВЫЙ КОД НЕ ПИСАТЬ. Подскажите, как в общем случае заменить continue, на структурированный эквивалент? quote:
ORIGINAL: _SaZ_
#include <iostream>
//...
int main() {
for (int x = 1; (x != 5) && (x <= 10); x++) {
}
//...
return 0;
} Переделываем:
#include <iostream>
//...
int main() {
for (int x = 1; (x == 5) || (x <= 10); x++) {
}
//...
return 0;
} Готового кода тут нет. Я тебе пишу сразу ответ, т.к. теорию можешь и сам почитать, если мозгов хватит. Первый семестр технического вуза, основы алгоритмизации. Могу послать в гугл. И не надо меня минусовать за правильные ответы.
|
|
|
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 не забывай использовать.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 19:25:38.880000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Ошибки (на вскидку): 1. Оффтоп. 2. Не используешь тэг для оформления сообщения.
3. Нет нормального выравнивания в коде => невозможно читать
4. double Side1 {get; set; } в интерфейсе не нужен
5. Side1 = 15; - что это за магия? Нужно Side1 = value;
6. Метод halfperimeter, да и вообще сам класс логически не верен, т.к. у квадрата 4 стороны ;). Причём равные.
Ну и т.д.
P.S. на будущее, стоит как минимум читать текст сообщения об ошибке, и приводить его на форуме, если проблемы с английским и компилированием.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 19:27:13.910000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
—форум глюканул—
|
|
|
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. Нет нормального выравнивания в коде => невозможно читать
4. double Side1 {get; set; } в интерфейсе не нужен
5. Side1 = 15; - что это за магия? Нужно Side1 = value;
6. Метод halfperimeter, да и вообще сам класс логически не верен, т.к. у квадрата 4 стороны ;). Причём равные.
Ну и т.д.
P.S. на будущее, стоит как минимум читать текст сообщения об ошибке, и приводить его на форуме, если проблемы с английским и компилированием.
1. Извиняюсь за оффтоп не осилил 30 страниц кода. 3. Тоже прошу прощения копировал из Текстового редактора. 6. Прочитай задание вниматильнее это полупериметр треугольника у тебя походу проблемы с русским
|
|
|
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 стороны - я не понимаю.
|
|
|
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 > 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();
}
}
}
}
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-03 22:04:04.173333
|
|
|
sanday
Сообщений: 41
Оценки: 0
Присоединился: 2010-02-06 12:52:26.896666
|
quote:
ORIGINAL: _SaZ_ Переделываем:
#include <iostream>
//...
int main() {
for (int x = 1; (x == 5) || (x <= 10); x++) {
}
//...
return 0;
} у меня в результате компиляции, не получилось пропустить цифру 5, используя этот код
|
|
|
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 <iostream>
//...
int main() {
for (int x = 1; (x == 5) || (x <= 10); x++) {
}
//...
return 0;
} у меня в результате компиляции, не получилось пропустить цифру 5, используя этот код логично
|
|
|
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 делать
}
И ещё раз. Учи теорию.
|
|
|
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 <iostream>
//...
int main() {
for (int x = 1; (x == 5) || (x <= 10); x++) {
}
//...
return 0;
} у меня в результате компиляции, не получилось пропустить цифру 5, используя этот код #include <iostream>
//...
int main() {
for (int x = 1; (x != 5) && (x <= 10); x++) {
}
//...
return 0;
} А так? ) Не, тож фигню написал )
|
|
|
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 < 10; x++)
{
if (x==5) continue;
}
|
|
|
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 < 10; x++)
{
if (x==5) continue;
}
Читай условие, дурик. Написать без continue.
|
|
|
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 < 10; x++)
{
if (x!=5) {
cout<<x<<endl;
};
}
так что ли?
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-04 13:21:46.066666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Синтаксический оверхед. После if не нужно ; ставить :D.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-04 15:51:45.290000
|
|
|
Papa James
Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
|
Бывает )
|
|
|
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]… Если путей с одинаковыми затратами энергии несколько вывести их все
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 18:03:34.516666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
В чём помочь?
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 18:14:43.346666
|
|
|
Sрam
Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
|
quote:
ORIGINAL: _SaZ_ В чём помочь? Как всегда в написании за него листинга программы ((
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 18:34:49.546666
|
|
|
Kadead
Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
|
2Sрam закройте рот любезнейший! Навести на мысль как её решить. Надо перебирать все возможные пути, а потом их сравнивать. Но как это сделать не оч представляю, точнее думаю через рекурсивную функцию да только что то не получается ее написать.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 19:03:58.883333
|
|
|
iidsp
Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
|
quote:
Навести на мысль как её решить. Надо перебирать все возможные пути, а потом их сравнивать. Но как это сделать не оч представляю, точнее думаю через рекурсивную функцию да только что то не получается ее написать. копай в сторону графов
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 19:17:00.436666
|
|
|
Kadead
Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
|
Копаю, вот вроде как поиск в глубину хочу организовать.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 19:19:16.896666
|
|
|
Sрam
Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
|
quote:
ORIGINAL: Kadead Копаю, вот вроде как поиск в глубину хочу организовать. Тебе надо не в глубь, а вправо или вверх… в цикле… считать сумму потраченной энергии…
|
|
|
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<<x<<"\t"<<y<<"\n"<<endl;
if(arr[y][x+1]==0 && x+1<N)
obhod(arr,x+1,y);
if (arr[y-1][x]==0 && y-1>=0)
obhod(arr,x,y-1);
if (arr[y][x+1]==100)
if (sum<ves_puti)
{
ves_puti=sum+pole[y][x+1];
cout<<sum+pole[y][x+1]<<endl;
}
if (arr[y-1][x]==100)
if (sum<ves_puti)
{
ves_puti=sum+pole[y-1][x];
cout<<sum+pole[y-1][x]<<endl;
}
arr[y][x]=0;
sum -=pole[y][x];
return;
}
int main()
{
for (char i=0;i<N;i++,system("CLS"))
for (char j=0;j<N;j++)
{
cin>>pole[i][j];
pole_versh[i][j]=0;
}
pole_versh[N-1][0]=1;
pole_versh[0][N-1]=100;
cout<<endl;
for (char i=0;i<N;i++,cout<<endl)
for (char j=0;j<N;j++)
cout<<pole[i][j]<<"\t";
cout<<endl;
for (char i=0;i<N;i++,cout<<endl)
for (char j=0;j<N;j++)
cout<<pole_versh[i][j]<<"\t";
obhod(pole_versh,0,N-1);
for (char i=0;i<N;i++,cout<<endl)
for (char j=0;j<N;j++)
cout<<pole_versh[i][j]<<"\t";
cout<<ves_puti;
return 0;
}
вроде бы работает. теперь бы придумать как координаты пути сохранять. P.S. В коде не обращайте внимание на различные дополнительные выводы, эт когда отлаживал для проверки нужно было. Внимание! Код выше работает неправильно, исправленная версия находится чуть ниже!
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 19:38:58.883333
|
|
|
Sрam
Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
|
quote:
теперь бы придумать как координаты пути сохранять. Еще один многомерный массив или в файл а потом считать от туда…
|
|
|
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 минимальных путей различных
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 21:53:59.810000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: iidsp quote:
Навести на мысль как её решить. Надо перебирать все возможные пути, а потом их сравнивать. Но как это сделать не оч представляю, точнее думаю через рекурсивную функцию да только что то не получается ее написать. копай в сторону графов есть мнение, что поиск в ширину лежит просто-таки на поверхности. не стоит даже лопату в руки брать, право
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-07 23:26:34.870000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Волновой алгоритм. Дейкстра кажется предлагал его как алгоритм поиска кратчайшего пути в графе. И, по-сути, там используется поиск в ширину.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-08 14:38:12.120000
|
|
|
Kadead
Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
|
Если я не ошибаюсь волновой алгоритм нужен для поиска кратчайшего пути в лабиринте или обходе препятствий.Как его в моем случае применить не очень понимаю. = )))
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-08 17:18:21.140000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: Kadead Если я не ошибаюсь волновой алгоритм нужен для поиска кратчайшего пути в лабиринте или обходе препятствий.Как его в моем случае применить не очень понимаю. = ))) точно так же. количество энергии, необходимое для прохождения клетки заменяешь на минимально возможную энергию пути до клетки (минимум от перемещения в клетку слева или снизу)
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-08 17:45:22.090000
|
|
|
Kadead
Сообщений: 108
Оценки: 0
Присоединился: 2007-10-22 23:02:04.916666
|
Можно будет попробывать на досуге так сделать. Ну и всем спасибо за помощь!Сделал наконец то)))Вот код если вдруг еще кому нибудь когда нибудь понадобится!
#include <iostream>
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<N)
obhod(arr,x+1,y);
if (arr[y-1][x]==0 && y-1>=0)
obhod(arr,x,y-1);
if (arr[y][x+1]==100)
if (sum<ves_puti)
{
ves_puti=sum;
for (int i=0;i<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<ves_puti)
{
ves_puti=sum;
for (int i=0;i<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<N;i++,system("CLS"))
for (char j=0;j<N;j++)
{
cin>>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<N;i++,cout<<endl)
for (char j=0;j<N;j++)
cout<<pole[i][j]<<"\t";
cout<<endl;
obhod(pole_versh,0,N-1);
cout<<ves_puti+pole[0][N-1]<<"\t";
cout<<endl;
for (int i=0;i<2*N-2;i++)
cout<<"["<<is_put[0][i]<<","<<is_put[1][i]<<"]";
cout<<"["<<N<<",1]"<<endl;
return 0;
}
|
|
|
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 была бы массивом, как выделить под нее память? Сначала обявляем миссив элементов структурного типа, затем указываем количество этих элементов, а потом выделяем память под указанное количество. Как это сделать подскажите?
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-09 23:49:56.406666
|
|
|
yurket
Сообщений: 69
Оценки: 0
Присоединился: 2009-05-04 23:47:54.993333
|
#include <stdio.h>
#include <stdlib.h>
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;
}
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-10 00:43:29.910000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
quote:
ORIGINAL: Merovingian Подскажите, если бы tttttt была бы массивом, как выделить под нее память? Сначала обявляем миссив элементов структурного типа, затем указываем количество этих элементов, а потом выделяем память под указанное количество. Как это сделать подскажите? Выделенное - каламбур. Если ты указал количество элементов, то память компилятор выделит сам. Почитай про статическое и динамическое выделение памяти.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-10 22:43:10.176666
|
|
|
sanday
Сообщений: 41
Оценки: 0
Присоединился: 2010-02-06 12:52:26.896666
|
Простая программа по определению простого числа, хочу чтобы вводили число , в результате выполнения функций, хочу, если число простое - возвращало само число , а если не простое - ничего не возвращало, помогите. Просто return или } не помогают, подскажите, что необходимо указать? //Определение является ли число простое
#include <iostream>
using namespace std;
int primeNumber(int);
main () {
int i;
cout << " Enter number: ";
cin >> i;
cout << primeNumber (i);
cout << endl;
system("pause");
return 0;
}
int primeNumber(int number) {
int summary = 0;
for (int i = 1; i <= number / 2; i++) {
if (number % i == 0)
summary += i;
else
continue;
}
if (summary == 1)
return number;
else
// не знаю что здесь должно быть
}
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-11 01:34:15.526666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Что ты понимаешь под "ничего не возвращало". У твоей функции тип возвращаемого значение - int, значит и возвращать нужно int. Как вариант - возвращай 0.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-11 06:24:42.266666
|
|
|
sanday
Сообщений: 41
Оценки: 0
Присоединился: 2010-02-06 12:52:26.896666
|
нда, верно, не понятно выразился. То есть после компиляции, на экран монитора ничего не выводило, т.е. к примеру, если число простое, то так 2 3 5 и т.д. прошу заметить число 4 не было выведено на экран монитора. Вот этого я и хочу)
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-03-11 10:12:59.673333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Возвращай не число, а строку, при необходимости - пустую. Только это глупо…
|
|
|
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; } например так
|
|
|
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 << c; }
|
|
|
|
|