Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
1

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

16.05.2011, 18:52. Показов 1649. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу решить несколько задач на циклы и массивы, если кто может помогите)

ЦИКЛЫ(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 — количество "особых" элементов массива А, считая его элемент особым, если он больше суммы остальных элементов его столбца.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2011, 18:52
Ответы с готовыми решениями:

массивы, циклы и т.д
очень нужна помощь помогите студенту программа borland c++ 3.1 1. Дано двузначное число....

Массивы и циклы
Суть задачи: Двумерный массив, содержащий равное число строк и столбцов, называется магическим...

Помогите решить задачу на циклы.
Логической переменной t присвоить значение True или False в зависимости от того, является...

Решить - циклы пред и постусловия.
Нужно составить программу, позволяющую вычислить значение суммы членов бесконечного ряда с заданной...

20
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,588
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;
}
1
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
17.05.2011, 19:54  [ТС] 3
ой пасибки большущее буду пробовать)

Добавлено через 23 часа 51 минуту
в 3 задаче позиции неправильно показывает, не могу понять, где неправильно(
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,588
17.05.2011, 20:06 4
Цитата Сообщение от F1ora Посмотреть сообщение
в 3 задаче позиции неправильно показывает
Это с учетом того, что элементы массива считаются от нуля?
0
9 / 9 / 0
Регистрация: 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;
}
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
17.05.2011, 20:50  [ТС] 6
у меня С неопределяет тип bool можно подругому выразить?
0
9 / 9 / 0
Регистрация: 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;
2
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
17.05.2011, 21:07  [ТС] 8
т.е. заместо bool - int соотвественно true и false 1 и 0 ?
0
9 / 9 / 0
Регистрация: 15.07.2010
Сообщений: 255
17.05.2011, 21:10 9
Цитата Сообщение от F1ora Посмотреть сообщение
т.е. заместо bool - int соотвественно true и false 1 и 0 ?
Именно так.
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
17.05.2011, 21:11  [ТС] 10
ага пасиб буду пробывать)
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
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-е задание
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
19.05.2011, 10:16  [ТС] 12
ругаеться на
int begin = 3 + rand() % 10; пишет should have a prototype
0
9 / 9 / 0
Регистрация: 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>
1
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;
}
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
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;
}
0
Toogoy
19.05.2011, 14:59 16
Помогите пожалуйста!!!

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

A6 B6|Bj=Sini/j+1

!!!!!!
на С и С++!!!!
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 10
23.05.2011, 17:13  [ТС] 17
обе проги не магу добить не работают на моем С(
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,588
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;
}
0
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;
}
но она тоже значение не то выдает честно не понимаю
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,588
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;
}
0
23.05.2011, 19:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2011, 19:10
Помогаю со студенческими работами здесь

Решить уравнение (циклы repeat, while, for)
Уравнение решить по 3 циклам repeat,while,for y:=3sin*sqrt(x+0.35+3.8) на отрезке с шагом h=0.2...

Циклы с неустановленным числом повторений(подскажите как задачу решить)
НЕ используя стандартные функции, вычислить с точностью ε&gt;0 Y=arctgx=x-x(в степени 3)/3+x(в...

Циклы, массивы.
Помогите пожалуйста!!! Завтра сдавать работы, я кроме них все сделал, а эти не хватает мозгов...

циклы и массивы.
1Решить задачу, с написанием программы.В начале года на рынке ценных бумаг имелось N акций фирмы A...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru