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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
AvengerAlive
5 / 5 / 0
Регистрация: 30.07.2011
Сообщений: 257
#1

Вывести числа по правилу - C++

19.08.2011, 10:41. Просмотров 1342. Ответов 34
Метки нет (Все метки)

Есть массив чисел 1...n;
Надо вывести вот это
1...1
1...2
.....
n...n

Ну это что-то типа k значной логики, все те числа вывести, только 0 не фигурирует, да и вообще в массиве могут быть любые числа. Это как коротко записать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2011, 10:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести числа по правилу (C++):

Заданы числа x и y. Если их сумма положительная, вывести на экран эти числа, иначе вывести их разницу - C++
Помогите пожалуйста...Заданные числа x и y . Если их сумма положительная , вывести на экран эти числа , иначе вывести на экран их разницу.

подскажите: как вывести на экран числа от 0 до 20.... и еще одна: вывести все четные числа от 0 до 20... - C++
подскажите: как вывести на экран числа от 0 до 20.... и еще одна: вывести все четные числа от 0 до 20... эт надо очень срочно....

Вывести матрицу по правилу - C++
помогите мне написать программу или для начала объясните куда писать сам код программы?(в обычную форму или куда?) Программа выводит...

Вывести последовательность по правилу - C++
Дано натуральное число n .разработать рекурсивную функцию для вывода на экран следующей последовательности чисел : 1 2 2 3 3...

Преобразовать вводимые числа по правилу Ai->Ai*(N-i) - C++
У меня есть задача. Дано целое число N и набор из N вещественных чисел: A1, A2, …, AN. Вывести следующие числа: (A1)N, (A2)N–1, …,...

Даны натуральное число n, действительные числа a[1],.,a[n]. Вычислить по правилу - C++
Объясните чего от меня хотят? Даны натуральное число n, действительные числа a,...,a. Вы- числить -a,a,-a,...,(-1)^na. -1 в...

34
Olga_
842 / 184 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 10:53 #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
#include <iostream>
using namespace std;
const int N = 3;
 
void Rec(int *a, int i, int n)
{
   if (i < n)
      for (int j = 1; j < n; j++)
      {
         a[i] = j;
         Rec(a, i + 1, n);
      }
   else
   {
      for (int j = 0; j < n; j++)
         cout << a[j] << " ";
      cout << "\n";
   }
}
 
int main()
{
    int a[N] = {1, 2, 3};
    Rec(a, 0, N);
    return 0;
}
0
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
19.08.2011, 11:00 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <stdio.h>
 
const int n = 4;
char a[n] = {'a', 'b', 'c', 'd'};
char o[n+1] = {0};  // для вывода
 
int doit(int u = 0)
{
    // u - это индекс символа для вывода
    // с - это индекс симола, который выбираем из выборки (a[n])
    int c;
    for (c=0; c<n; c++)
    {
        o[u] = a[c];
        
        if (u==n-1) // если сейчас мы работаем с последним символом вывода, то...
            puts(o);    // вывести
        else
            doit(u+1);  // инача работать с очередным символом вывода
    }
}
 
int main()
{
    doit();
}
Добавлено через 42 секунды
Опять опоздал.
0
Olga_
842 / 184 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 11:06 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Малюсенькая правка:

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
#include <iostream>
using namespace std;
const int N = 3;
 
void Rec(int *a, int i, int n)
{
   if (i < n)
      for (int j = 1; j <= n; j++)
      {
         a[i] = j;
         Rec(a, i + 1, n);
      }
   else
   {
      for (int j = 0; j < n; j++)
         cout << a[j] << " ";
      cout << "\n";
   }
}
 
int main()
{
    int a[N] = {1, 2, 3};
    Rec(a, 0, N);
    return 0;
}
1
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.08.2011, 11:12 #5
Цитата Сообщение от AvengerAlive Посмотреть сообщение
Это как коротко записать?
C++
1
2
3
4
#include <iostream>
int main(){
    for (int arr[] = { 1, 2, 4, 7 }, size = sizeof(arr) / sizeof(*arr), i = -1; ++i < size; std::cout << arr[i] << "..." << arr[i] << std::endl);
}
0
Olga_
842 / 184 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 11:16 #6
Diagon, надо было в одну строчку весь код написать
1
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.08.2011, 11:33 #7
Цитата Сообщение от Olga_ Посмотреть сообщение
Diagon, надо было в одну строчку весь код написать
Некрасиво же получиться.
А так получился просто один большой for.
0
Olga_
842 / 184 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 11:36 #8
Кстати, Diagon, ваша программа не то выводит, нужны все значения, например при n=2:
11
12
21
22

Добавлено через 1 минуту
Цитата Сообщение от diagon Посмотреть сообщение
Некрасиво же получиться.
А так получился просто один большой for.

Да это шутка
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.08.2011, 11:43 #9
Цитата Сообщение от Olga_ Посмотреть сообщение
Кстати, Diagon, ваша программа не то выводит, нужны все значения, например при n=2:
11
12
21
22
А, ну да, задание не понял просто...
0
-=ЮрА=-
Заблокирован
Автор FAQ
19.08.2011, 11:59 #10
У меня вышло только так
C++
1
2
3
4
5
6
7
8
#include <iostream.h>
 
int main()
{
    int arr[] = {1,2,4,7};
    for(int i = -1,size = sizeof(arr)/sizeof(arr[0]); i < size - 1;cout<<arr[i]<<"..." <<arr[(i = i + 1)]<<"\r\n");
    return 0;
}
1...1
2...2
4...4
7...7
Press any key to continue
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.08.2011, 12:02 #11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
У меня вышло только так
Ну естественно, вы же сначала увеличиваете i, потом выводите, потом проверяете, не меньше ли она n.
0
Olga_
842 / 184 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 12:06 #12
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
1...1
2...2
4...4
7...7
Еще раз, нужны все значения, многоточие это символ того, что там что-то стоит. Например, n=3. Тогда
111
112
113
...
332
333

Добавлено через 3 минуты
Кстати, Diagon, эта задача смахивает на разбиение числа, поэтому мой алгоритм очень похож на тот самый, да и вы без труда преобразовали бы тот свой алгоритм для этой задачи
0
-=ЮрА=-
Заблокирован
Автор FAQ
19.08.2011, 12:09 #13
Млин сразу не въехал в задание (диагон со своей строчкой сбил - думал прикол в строку записать)

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream.h>
 
int main()
{
    int arr[] = {1,2,4,7};
    int size = sizeof(arr)/sizeof(arr[0]);
    for(int i = 0,k; i < size; i++)
        for(k = i; k < size;k++)
            cout<<arr[i]<<"..." <<arr[k]<<"\r\n";
    return 0;
}

1...1
1...2
1...4
1...7
2...2
2...4
2...7
4...4
4...7
7...7
Press any key to continue


Добавлено через 1 минуту
Цитата Сообщение от Olga_ Посмотреть сообщение
Еще раз, нужны все значения, многоточие это символ того, что там что-то стоит. Например, n=3. Тогда
- капец ну и постановка задачи у человека, ладно сейчас
0
Olga_
842 / 184 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 12:10 #14
=ЮрА=, вы запустите мой алгоритм и тогда увидите что должно появиться на экране
0
-=ЮрА=-
Заблокирован
Автор FAQ
19.08.2011, 12:12 #15
Думаю теперь по заданию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
 
int main()
{
    int arr[] = {1,2,4,7};
    int size = sizeof(arr)/sizeof(arr[0]);
    for(int i = 0,k; i < size; i++)
    {
        cout<<arr[i];
        for(k = i + 1; k < size;k++)
            cout<<arr[k];
        cout<<"\r\n";
    }
    return 0;
}
1247
247
47
7
Press any key to continue
0
19.08.2011, 12:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2011, 12:12
Привет! Вот еще темы с ответами:

Найти числа, изменяя которые по заданному правилу можно в итоге получить ноль - C++
1.Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное число к сумме его цифр....

Дано вещественное число B>0. Последовательность чисел образуется по правилу: a0=1, ai+1=ai2+1. Распечатать все числа ai такие , что ai<B - C++
Дано вещественное число B&gt;0. Последовательность чисел образуется по правилу: a0=1, ai+1=ai^2+1. Распечатать все числа ai такие , что...

Умножить два больших целых числа по правилу умножения "в столбик" - C++
Умножить два больших целых числа по правилу умножения “в столбик”. Для таких чисел вещественный тип неприемлем, а типа long int ...

Дано два числа А и В (А<В). Вывести в порядке увеличения все целые числа - C++
Дано два числа А и В (А&lt;В). Вывести в порядке увеличения все целые числа, расположеные между А и В(не включая чисед А и В), а также...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru