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

последовательность 1 3 5 7 ... 8 6 4 2 0 - C++

Восстановить пароль Регистрация
 
TXLib.h
 Аватар для TXLib.h
3 / 3 / 0
Регистрация: 01.12.2010
Сообщений: 68
06.02.2011, 17:25     последовательность 1 3 5 7 ... 8 6 4 2 0 #1
нужно было написать алгоритм 1 3 5 7 ... 8 6 4 2 0. Причём половину ячеек массива занимают нечётные числа в порядке возрастания, половину - чётные в порядке убывания. Написал код, компилируется, да не так, как нужно.Подскажите, пожалуйста!Возможно наличие дурацких ошибок

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 "TXLib.h"
 
int main()
{
    txCreateWindow (500, 500);
    const int SIZE = 22;
    int x [SIZE] = {1};
    int i = 1;
    
    while (i < SIZE/2)
    {
          x [i] = i*2 + 1;
          i++;
    }
    
    while (i >= SIZE/2 && i < SIZE)
    {
          x [i] = x [i - 1] - 2;
          i++;
    }
    i = 0;
    
    while (i < SIZE)
    {
          printf ("%d \n", x [i]);
          i++;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2011, 17:25     последовательность 1 3 5 7 ... 8 6 4 2 0
Посмотрите здесь:

Последовательность C++
Преобразовать литерную последовательность в другую литерную последовательность всеми описанными ниже способами C++
Вводится последовательность из N целых чисел. Сформировать последовательность, C++
C++ Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше предыдущего. Вывести полученую последовательность.
Последовательность С++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
06.02.2011, 18:11     последовательность 1 3 5 7 ... 8 6 4 2 0 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main()
{
   int mas [10];
   
   for (int i = 1, j = 0; j < 5; i += 2, j++)
      mas [j] = i;
   
   for (int i = 8, j = 0; j < 5; i -= 2, j++)
      mas [j+5] = i;
      
   for (int i = 0; i < 10; i++)
      std::cout << mas[i] << " ";
   std::cout    << std::endl;
      
   return 0;
}


Добавлено через 2 минуты
или так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
   int mas [10] = {1, 3, 5, 7, 9, 8, 6, 4, 2, 0};
 
   for (int i = 0; i < 10; i++)
      std::cout << mas[i] << " ";
   std::cout    << std::endl;
 
   return 0;
}
Добавлено через 8 минут
Так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int main()
{
   const int SIZE = 21;
   int mas [SIZE] = {0};
   
   int i = 1;
   for (int j = 0; j < SIZE/2; j++, i += 2)
      mas [j] = i;
   
   i = 0;
   for (int j = SIZE-1; j >= SIZE/2; j--, i += 2)
      mas [j] = i;
 
      
   for (int k = 0; k < SIZE; k++)
      std::cout << mas[k] << " ";
   std::cout    << std::endl;
 
   return 0;
}
no0ker
100 / 87 / 4
Регистрация: 17.12.2010
Сообщений: 416
06.02.2011, 18:17     последовательность 1 3 5 7 ... 8 6 4 2 0 #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
27
28
29
#include <stdio.h>
#include <stdlib.h>
 
int main(){
 
    int size;
    int *mas;
    int i,j;
 
    scanf("%d",&size);
    mas = (int*)calloc(sizeof(int),size);
 
    j=1;
    for(i=0;i<size/2;i++){
        mas[i]=j;
        j+=2;
    }
 
    j-=3;
    for(;i<size;i++){
        mas[i]=j;
        j-=2;
    }
 
    for(i=0;i<size;i++) printf("%d  ",mas[i]);
 
    free(mas);
    mas=NULL;
}
Добавлено через 3 минуты

Не по теме:

можно добавить еще проверку вводимого size на четность

Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
06.02.2011, 18:22     последовательность 1 3 5 7 ... 8 6 4 2 0 #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
27
28
29
30
#include "TXLib.h"
 
int main()
{
    txCreateWindow (500, 500);
    const int SIZE = 22;
    int x [SIZE] = {1};
    int i = 0;
    
    while (i < SIZE/2)
    {
          x [i] = i*2 + 1;
          i++;
    }
    
    x [i] = 2*(i-1);
    i++;
    while (i < SIZE)
    {
          x [i] = x [i - 1] - 2;
          i++;
    }
    i = 0;
    
    while (i < SIZE)
    {
          printf ("%d \n", x [i]);
          i++;
    }
}
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
06.02.2011, 19:01     последовательность 1 3 5 7 ... 8 6 4 2 0 #5
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<windows.h>
#include<process.h>
 
HANDLE h;
const int MASSIZE = 11;
int mas[MASSIZE];
void f(void* p){
    for(int i=0; i<(MASSIZE+1)/2; i++){
        mas[MASSIZE-i-1]=2*i;
    }
    SetEvent(h);
}
 
int main(){
    h = CreateEvent(NULL, FALSE, FALSE, NULL);
    _beginthread(f, 0, 0);
    for(int i=0; i<MASSIZE/2; i++){
        mas[i]=2*i+1;
    }
    WaitForSingleObject(h, INFINITE);
    for(int i=0; i<MASSIZE; i++) printf("%d  ", mas[i]);
}
Yandex
Объявления
06.02.2011, 19:01     последовательность 1 3 5 7 ... 8 6 4 2 0
Ответ Создать тему
Опции темы

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