Форум программистов, компьютерный форум CyberForum.ru

Мин/макс. из n чисел; простые числа - C++

Восстановить пароль Регистрация
 
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 170
16.11.2013, 19:52     Мин/макс. из n чисел; простые числа #1
Написать программу нахождения минимального и максимального из n (n>0) введенных чисел.
Вывести все простые числа в интервале от 1 до N. Сделать, используя циклы while, do/while, for.

Знаю, что легкие задачи, сам делал когда-то давно, уже забыл. Напомните, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2013, 19:52     Мин/макс. из n чисел; простые числа
Посмотрите здесь:

C++ двумерный массив макс мин
Определить макс и мин цифры C++
C++ Одномерный массив макс мин
список мин и макс элемент C++
C++ Массив поиск мин-макс элемента
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 170
21.11.2013, 11:27  [ТС]     Мин/макс. из n чисел; простые числа #2
Помогите хотя бы с простыми числами.

[
C++
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
#include <stdio.h>
#include <conio.h>
 
void main()
{
  int n,i,j,f;
  clrscr();
  do
    {
     printf("Введите целое положительное число n\n");
     scanf("%d", &n);
    }
  while (n<0);
  for (i=2;n;);
    {
      f=1;
      j=2;
      while (j*j<=i && f==1)
    {
      if (i%j==0)
        f=0;
      else
        j=j+1;
      if (f==1)
        printf("%d ", i);
    }
    }
  getch();
}
Зацикливание.
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
21.11.2013, 11:33     Мин/макс. из n чисел; простые числа #3
C++
1
2
  for (i=2;n;);
    {
->
C++
1
2
  for (i=2;i<=n;i++)
    {
простая функция определения простого числа:
C++
1
2
3
4
5
6
7
8
int simple (unsigned long int n) {
 unsigned long int i,l=floor(sqrt(n));
 if (n<2) return 0; //1 - не простое
 else if (n<4) return 1; //2,3 - простые
 else if (n%2==0) return 0; //четные - не простые
 for (i=3; i<=l; i+=2) if (n%i==0) return 0;
 return 1;
}
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 170
21.11.2013, 11:36  [ТС]     Мин/макс. из n чисел; простые числа #4
Не зацикливается, но выводит чушь

Добавлено через 36 секунд
Нужно через цикл без функций.
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
21.11.2013, 11:38     Мин/макс. из n чисел; простые числа #5
Цитата Сообщение от Rakot568 Посмотреть сообщение
Не зацикливается, но выводит чушь
а ты и не спрашивал, не чушь ли пишешь.

Цитата Сообщение от Rakot568 Посмотреть сообщение
Нужно через цикл без функций
возьми содержимое функции и перенеси в главную программу
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 170
21.11.2013, 12:06  [ТС]     Мин/макс. из n чисел; простые числа #6
Я взял программу отсюда: Цикл: Вывести все простые числа в диапазоне от 1 до N и переписал на с.
На Pascal все работает, на с - нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2013, 12:58     Мин/макс. из n чисел; простые числа
Еще ссылки по теме:

Найти сумму чисел, которые находятся между Мин. и Макс по модулю элементами массива C++
Поменять местами макс и мин эл-ты массива C++
C++ Мин-макс в списке

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
21.11.2013, 12:58     Мин/макс. из n чисел; простые числа #7
Цитата Сообщение от Rakot568 Посмотреть сообщение
На Pascal все работает, на с - нет.
Программа по твоей ссылке, будучи переписанной на Си, работает прекрасно:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <conio.h>
 
int n,i,j,f;
int main () {
clrscr();
do {
 printf ("Введите целое положительное число n=");
 scanf("%d",&n);
} while (n<0);
for (i=2 ; i<=n; i++) {
 f=1;
 j=2;
 while (j*j<=i && f) {
  if (i%j==0) f=0;
  else j++;
 }
 if (f) printf ("%d ",i);
}
fflush(stdin); getchar();
return 0;
}
Тест:
Введите целое положительное число n=20
2 3 5 7 11 13 17 19
ТЫ поместил в двойной цикл
C
1
2
if (f==1)
        printf("%d ", i);
чего автор той программы отнюдь не делал:
Pascal
1
2
3
4
while(j*j<=i)and f do {подразумевается begin}
  if i mod j=0 then f:=false
  else j:=j+1; {подразумевается end;}
  if f then write(i,' ')
Yandex
Объявления
21.11.2013, 12:58     Мин/макс. из n чисел; простые числа
Ответ Создать тему
Опции темы

Текущее время: 08:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru