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

Не могу решить циклы и массивы - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
F1ora
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
16.05.2011, 18:52     Не могу решить циклы и массивы #1
Не могу решить несколько задач на циклы и массивы, если кто может помогите)

ЦИКЛЫ(WHILE, REPEAT)
1) Дано число a (1<a<=1,5). Из чисел 1+1/2, 1+1/3, … напечатать те, которые не меньше a

Циклы (FOR…)
2) Два простых числа называются "близнецами", если они отличаются друг от друга на 2 (например, 41 и 43). Напечатать все пары "близнецов" из отрезка [n, 2n], где n — заданное натуральное число больше 2.

ДВУМЕРНЫЕ МАССИВЫ
3) Дана вещественная матрица А размерности n х m. Определить k — количество "особых" элементов массива А, считая его элемент особым, если он больше суммы остальных элементов его столбца.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2011, 18:52     Не могу решить циклы и массивы
Посмотрите здесь:

C++ Циклы и линейные массивы
C++ массивы, циклы и т.д
C++ Массивы,указатели,циклы.
не могу решить массивы, функции, арифметические операции в С++ C++
C++ Массивы и циклы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
16.05.2011, 19:31     Не могу решить циклы и массивы #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
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
int main(int argc, char **argv) {
  srand(time(NULL));
 
  // 1.
  double number = 1 + (rand() % 500) / 1000.;
  printf("The number is %.4f\n", number);
  int divisor = 2;
  float result;
  while ((result = 1. + 1. / divisor) >= number) {
    printf("%.4f is not less than %.4f\n", result, number);
    ++divisor;
  }
 
  // 2.
  int begin = 3 + rand() % 10;
  printf("All twin numbers in [%d, %d]:\n", begin, begin * 2);
  int i;
  for (i = begin; i < begin * 2 - 1; ++i)
    printf("(%3d, %3d) ", i, i + 2);
  printf("\n");
 
  // 3.
  int height = 3 + rand() % 2;
  int width = 3 + rand() % 3;
  printf("M[%d x %d]:\n", height, width);
  int j, k;
  int **array = (int**)malloc(sizeof(int*) * height);
  for (j = 0; j < height; ++j) {
    array[j] = (int*)malloc(sizeof(int) * width);
    for (k = 0; k < width; ++k)
      printf("%3d", array[j][k] = rand() % 100);
    printf("\n");
  }
 
  int special = 0;
  for (k = 0; k < width; ++k) {
    int column_sum = 0;
    for (j = 0; j < height; ++j)
      column_sum += array[j][k];
    for (j = 0; j < height; ++j)
      if (array[j][k] > (column_sum - array[j][k])) {
        printf("M[%d, %d] = %d is special.\n", j, k, array[j][k]);
        ++special;
      }
  }
  printf("Found %d special item(s).\n", special);
 
  for (j = 0; j < height; ++j)
    free(array[j]);
  free(array);
 
  return 0;
}
F1ora
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
17.05.2011, 19:54  [ТС]     Не могу решить циклы и массивы #3
ой пасибки большущее буду пробовать)

Добавлено через 23 часа 51 минуту
в 3 задаче позиции неправильно показывает, не могу понять, где неправильно(
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
17.05.2011, 20:06     Не могу решить циклы и массивы #4
Цитата Сообщение от F1ora Посмотреть сообщение
в 3 задаче позиции неправильно показывает
Это с учетом того, что элементы массива считаются от нуля?
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
17.05.2011, 20:15     Не могу решить циклы и массивы #5
Цитата Сообщение от lemegeton Посмотреть сообщение
int begin = 3 + rand() % 10; printf("All twin numbers in [%d, %d]:\n", begin, begin * 2); int i; for (i = begin; i < begin * 2 - 1; ++i) printf("(%3d, %3d) ", i, i + 2); printf("\n");
В задаче речь идёт о "близнецах", тобишь только о простых числах.
Подправил

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main(int argc, char* argv[])
{
    bool isPrime;
    srand(time(NULL));
    int begin = 3 + rand() % 10;
    printf("All twin numbers in [%d, %d]:\n", begin, begin * 2);
    int i;
    for (i = begin; i < begin * 2 - 1; ++i)
    {
                isPrime = true;
        for(int j = 2; j < i; ++j)
            if((i%j == 0) || ((i+2)%j == 0))
                isPrime = false;
        if(isPrime)
            printf("(%3d, %3d) ", i, i + 2);
    }
    printf("\n");
    return 0;
}
F1ora
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
17.05.2011, 20:50  [ТС]     Не могу решить циклы и массивы #6
у меня С неопределяет тип bool можно подругому выразить?
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
17.05.2011, 20:51     Не могу решить циклы и массивы #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main(int argc, char* argv[])
{
        int isPrime;
        srand(time(NULL));
        int begin = 3 + rand() % 10;
        printf("All twin numbers in [%d, %d]:\n", begin, begin * 2);
        int i;
        for (i = begin; i < begin * 2 - 1; ++i)
        {
                isPrime = 1;
                for(int j = 2; j < i; ++j)
                        if((i%j == 0) || ((i+2)%j == 0))
                                isPrime = 0;
                if(isPrime == 1)
                        printf("(%3d, %3d) ", i, i + 2);
        }
    printf("\n");
        return 0;
F1ora
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
17.05.2011, 21:07  [ТС]     Не могу решить циклы и массивы #8
т.е. заместо bool - int соотвественно true и false 1 и 0 ?
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
17.05.2011, 21:10     Не могу решить циклы и массивы #9
Цитата Сообщение от F1ora Посмотреть сообщение
т.е. заместо bool - int соотвественно true и false 1 и 0 ?
Именно так.
F1ora
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
17.05.2011, 21:11  [ТС]     Не могу решить циклы и массивы #10
ага пасиб буду пробывать)
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
17.05.2011, 22:33     Не могу решить циклы и массивы #11
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
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
#include <valarray>
#include <iostream>
#include <algorithm>
#include <vector>
#include <stdlib.h>
#include <time.h>
#define str 5
#define stl 6
using namespace std;
 
int main () {
  int arr []= {20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40};
  for (int i= 0; i< sizeof(arr)/sizeof(int)- 2; i++)
   printf ("%d %d\n", arr [i], arr [i+2]);  
 
  printf ("\n\n\n");
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 srand (time(0));
 float arr_ [str] [stl];
 rand();
 
 //Заполняем
 for (int i= 0; i< str; i++)
  for (int j= 0; j< stl; j++)
   arr_[i][j]= rand();
 
 //Выводим
 for (int i= 0; i< str; i++){
  for (int j= 0; j< stl; j++)
   printf ("%5.0f ",arr_[i][j]= rand());
  printf ("\n");
 }
 
 //Находим чё надо
 //Для этого вводим херь, называемую вектором
 float max;
 float sum;
 vector<float> vec;
 for (int i= 0; i< stl; i++) {
  for (int j= 0; j< str; j++){
   vec.push_back(arr_[j][i]);
  }
  //Теперь находим максимальный элемент  
  max= *max_element(vec.begin(), vec.end()); 
  
  //Теперь сумму
  valarray<float> myvalarray (&vec[0],str);
  sum= myvalarray.sum()- max;
 
  //ПРоверяем и если чё- выводим
  if (sum< max)
   printf ("max= %f\n\n", max);
  vec.resize(0);
 }
 getchar ();
 return 0;
}
2-е и 3-е задание
F1ora
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
19.05.2011, 10:16  [ТС]     Не могу решить циклы и массивы #12
ругаеться на
int begin = 3 + rand() % 10; пишет should have a prototype
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
19.05.2011, 12:01     Не могу решить циклы и массивы #13
Цитата Сообщение от F1ora Посмотреть сообщение
ругаеться на
int begin = 3 + rand() % 10; пишет should have a prototype
Подключи библиотеки:

C++
1
2
3
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
F1ora
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
19.05.2011, 13:23  [ТС]     Не могу решить циклы и массивы #14
Цитата Сообщение от alexsvk Посмотреть сообщение
C++
1
int main(int argc, char* argv[])
пишет что значение не используеться(

Добавлено через 3 минуты
еще проблемка
Дано натуральное число n. Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр. Например, из числа 59015509 должно получиться 919. (задачу сделала но вот незадача если вводиш другие числа (например 2,3,4) выводит краказябру)
#include <stdio.h>
#include<math.h>
#include <conio.h>
#include<iostream.h>
int main ()
{
clrscr();
int a=19150;
int b,i=0,k;


b=a;

while(b>1) {
b/=10;
i++; } i--;
k=pow(10,i);

while (k) {
b=a/k;

if (b!=5 && b!=0) printf("%d", b);
a-=b*k;
k/=10; }

getch ();
return 0;
}
Добавлено через 2 минуты
еще проблемка
Дано натуральное число n. Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр. Например, из числа 59015509 должно получиться 919. (задачу сделала но вот незадача если вводиш другие числа (например 2,3,4) выводит краказябру)
#include <stdio.h>
#include<math.h>
#include <conio.h>
#include<iostream.h>
int main ()
{
clrscr();
int a=19150;
int b,i=0,k;


b=a;

while(b>1) {
b/=10;
i++; } i--;
k=pow(10,i);

while (k) {
b=a/k;

if (b!=5 && b!=0) printf("%d", b);
a-=b*k;
k/=10; }

getch ();
return 0;
}
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
19.05.2011, 14:01     Не могу решить циклы и массивы #15
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main(int argc, char* argv[])
{
   int num_in = 92347005, num_out = 0, mul = 1, tmp;
 
   while (num_in)
   {
      tmp = num_in % 10;
      if (tmp != 5 && tmp != 0)
      {
         num_out += tmp * mul;
         mul *= 10;
      }
      num_in /= 10;
   }
   printf ("%d", num_out);
   getchar();
   return 0;
}
Toogoy
Сообщений: n/a
19.05.2011, 14:59     Не могу решить циклы и массивы #16
Помогите пожалуйста!!!

Найти разность RA между max элементами массива A и B.

A6 B6|Bj=Sini/j+1

!!!!!!
на С и С++!!!!
F1ora
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
23.05.2011, 17:13  [ТС]     Не могу решить циклы и массивы #17
обе проги не магу добить не работают на моем С(
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
23.05.2011, 17:43     Не могу решить циклы и массивы #18
Какие еще "обе проги"? И что значит "не работают"? Где тексты программ, ошибок и строки, на которых они возникают?
Сначала было три проги, тебе все три решили. Потом еще одна. Не пойму, какие обе-то?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
 
  unsigned int number = rand();
  unsigned char unwanted_digit = rand() % 10;
  
  int result = 0;
  int i, j;
  for (i = number, j = 1; i > 0; i /= 10, j *= 10)
    if (i % 10 != unwanted_digit)
      result += (i % 10) * j;
 
  printf("Source: %d\nUnwanted digit: %d\nResult: %d\n",
         number, unwanted_digit, result);
  return 0;
}
F1ora
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
23.05.2011, 18:37  [ТС]     Не могу решить циклы и массивы #19
Дано натуральное число n. Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр. Например, из числа 59015509 должно получиться 919.
Честно я очень плохо понимаю с++ но сдать их надо поэтому прошу помощи(
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
#include <stdio.h>
 #include<math.h>
 #include <conio.h>
 #include<iostream.h>
 int main ()
 {
 clrscr();
 int a=19150;
 int b,i=0,k;
 
 
 b=a;
 
 while(b>1) {
 b/=10;
 i++; } i--;
 k=pow(10,i);
 
 while (k) {
 b=a/k;
 
 if (b!=5 && b!=0) printf("%d", b);
 a-=b*k;
 k/=10; }
 
 getch ();
 return 0;
 }
проблема в том что надо что бы были и другие цифры а если их воодить выдает совсем другое прогу выложыли
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main(int argc, char* argv[])
{
   int num_in = 92347005, num_out = 0, mul = 1, tmp;
 
   while (num_in)
   {
      tmp = num_in % 10;
      if (tmp != 5 && tmp != 0)
      {
         num_out += tmp * mul;
         mul *= 10;
      }
      num_in /= 10;
   }
   printf ("%d", num_out);
   getchar();
   return 0;
}
но она тоже значение не то выдает честно не понимаю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 19:10     Не могу решить циклы и массивы
Еще ссылки по теме:

C++ Циклы и двумерные массивы
массивы и Вложенные циклы C++
Массивы и циклы: РЛ числа C++

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

Или воспользуйтесь поиском по форуму:
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
23.05.2011, 19:10     Не могу решить циклы и массивы #20
Дубльдва.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
 
  unsigned int number = 1234567890; // число, из которого надо удалить цифру
  unsigned char unwanted_digit = 0; // цифра, которую надо удалить из числа
  
  int result = 0;  // результат
  int i, j;
  for (i = number, j = 1; i > 0; i /= 10)
    if (i % 10 != unwanted_digit) {
      result += (i % 10) * j;
      j *= 10;
    }
 
  printf("Source: %d\nUnwanted digit: %d\nResult: %d\n",
         number, unwanted_digit, result);
  return 0;
}
Yandex
Объявления
23.05.2011, 19:10     Не могу решить циклы и массивы
Ответ Создать тему
Опции темы

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