Показаны сообщения с ярлыком C++. Показать все сообщения
Показаны сообщения с ярлыком C++. Показать все сообщения

понедельник, 17 мая 2010 г.

как поменять элементы массива местами c

как поменять элементы массива местами (Си)

самый простой способ для понимания это представить себе переменную в виде стакана с водой

итого мы имеем 2 стака с жидкостями которые нужно поменять местами (содержимое стакана)

как бы вы сделали это в реальной жизни? так же и в программе! - посредством третьего стакана!


int a = 10;
int b = 20;
int temp; //наш третий стакан - посредник

temp = a; //перелили в третий стакан содержимое первого
a = b; //первый у нас освободился? заполняем его содержимым второго
b = temp; //второй освободился? заполняем его содержимым третьего (а там что?)

вот и поменялись...

понедельник, 10 мая 2010 г.

перевод чисел из двоичной системы в текст

/* перевод чисел из двоичной системы в текст */

#include <stdio.h>

void main()
{
 int n = 1234;
 int i = 0;
 int m[32];

 printf("10: %d\n", n);

 while (n > 0)
 {
  m[i++] = n & 1;
  n = n >> 1;
 }

 printf(" 2: ");

 for (; i > 0; i--)
 {
  printf("%d", m[i-1]);
 }

 printf("\n");
}

массив состоит из 20 целых положительных и отрицательных чисел. выведите на экран сначала отрицательные, а затем положительные числа.

/* массив состоит из 20 целых положительных и отрицательных чисел.
 выведите на экран сначала отрицательные,
 а затем положительные числа. */

#include <stdio.h>

void main()
{
 int m[] = {1, -2, 3, 4, 5, 6, 7, 8, -9, 10, 11, -12, 13, 14, -15, 16, 17, -18, 19, 20};
 int i;

 printf("отрицательные: ");
 for (i = 0; i < 20; i++)
  if (m[i] < 0)
   printf("%d ", m[i]);

 printf("\n");


 printf("положительные: ");
 for (i = 0; i < 20; i++)
  if (m[i] > 0)
   printf("%d ", m[i]);

 printf("\n");
}

пятница, 18 декабря 2009 г.

В целочисленном массиве определить количество и координаты перемен знака

#include <stdio.h>

#define N 10

int main(int argc, char *argv[])
{
    int m[N];
    int i;
    int change_count = 0;

    //инициализируем генератор случайных чисел
    srand(time(0));

    //инициализируем массив случайными числами от -5 до 5
    for (i = 0; i < N; i++) m[i] = rand() % 10 - 5;

    //выводим на экран исходный массив
    for (i = 0; i < N; i++) printf("%3d", m[i]);
    printf("\n");

    for (i = 1; i < N; i++)
    {
        if ((m[i-1] > 0 && m[i] < 0)
            || (m[i-1] < 0 && m[i] > 0)
            || (m[i-1] == 0 && m[i] != 0)
            || (m[i-1] != 0 && m[i] == 0))
        {
            printf("в позиции %d смена знака\n", i);
            change_count++;
        }
    }

    printf("количество изменений: %d\n", change_count);    
    

    return 0;
}

вывод:
2 -5 -4  2  4  0  2  2  0 -1
в позиции 1 смена знака
в позиции 3 смена знака
в позиции 5 смена знака
в позиции 6 смена знака
в позиции 8 смена знака
в позиции 9 смена знака
количество изменений: 6

четверг, 17 декабря 2009 г.

бегущая строка

#include <stdio.h>
#include <time.h>

int main(int argc, char *argv[])
{
 int i;
 int j = 0;
 char s[] = "бегущая строка ";

 while (j++ < 1000)
 {
  for (i = 0; i < sizeof(s); i++)
   printf("%c", s[(i+j) % sizeof(s)]);

  printf("\r");

  usleep(100000);
 }

 return 0;
}

четверг, 10 декабря 2009 г.

Нахождение заданного числа в массиве

Плиз, помогите решить задачку на языке Си "Нахождение заданного числа в массиве"

#include <stdio.h>

int main(int argc, char *argv[])
{
 /* заполните массив своими элементами */
 int a[] = {12, 23, 54, 1, 4, 33, 65}; 
 int i; /* переменная цикла */
 int x; /* искомое число */

 printf("введите число: ");
 scanf("%d", &x);

 for (i = 0; i < sizeof(a)/sizeof(int); i++)
 {
  if (x == a[i])
  {
   printf("число найдено: его индекс в массиве: %d\n", i);
   return 1;
  }
 }

 printf("такого числа нет в массиве\n");
 return 0;
}

среда, 10 июня 2009 г.

возведение числа в степень без math.h

Ребят! Напишите пожалуйста такую программу: программа должна возводить в степень заданное число) скажем 2 в 5 = 32)


void task()
{
unsigned int i;

int x;
int y;
int r;

printf("Input x: ");
scanf("%d", &x);
printf("Input y: ");
scanf("%d", &y);

if (y = 0)
{
r = 1;
}
else
{
r = x;
for (i = 1; i < y; i++)
{
r = r * x;
}
}

printf("x^y=%d\n", r);
}


полный вариант работающей версии тут

или если вам нужен скоростной подход то тут...