как поменять элементы массива местами (Си)
самый простой способ для понимания это представить себе переменную в виде стакана с водой
итого мы имеем 2 стака с жидкостями которые нужно поменять местами (содержимое стакана)
как бы вы сделали это в реальной жизни? так же и в программе! - посредством третьего стакана!
int a = 10;
int b = 20;
int temp; //наш третий стакан - посредник
temp = a; //перелили в третий стакан содержимое первого
a = b; //первый у нас освободился? заполняем его содержимым второго
b = temp; //второй освободился? заполняем его содержимым третьего (а там что?)
вот и поменялись...
Показаны сообщения с ярлыком C++. Показать все сообщения
Показаны сообщения с ярлыком C++. Показать все сообщения
понедельник, 17 мая 2010 г.
понедельник, 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);
}
полный вариант работающей версии тут
или если вам нужен скоростной подход то тут...
Подписаться на:
Сообщения (Atom)