как поменять элементы массива местами (Си)
самый простой способ для понимания это представить себе переменную в виде стакана с водой
итого мы имеем 2 стака с жидкостями которые нужно поменять местами (содержимое стакана)
как бы вы сделали это в реальной жизни? так же и в программе! - посредством третьего стакана!
int a = 10;
int b = 20;
int temp; //наш третий стакан - посредник
temp = a; //перелили в третий стакан содержимое первого
a = b; //первый у нас освободился? заполняем его содержимым второго
b = temp; //второй освободился? заполняем его содержимым третьего (а там что?)
вот и поменялись...
понедельник, 17 мая 2010 г.
javascript нахождение суммы цифр числа
javascript нахождение суммы цифр числа
<script>
var n = prompt ("number?", "1234")
var s = 0
while (n > 0)
{
s += n % 10
n = Math.floor(n/10)
}
alert("summa: " + s)
</script>
вторник, 11 мая 2010 г.
понедельник, 10 мая 2010 г.
количество счастливых билетов
Кто возьмет билетов пачку, тот получит водокачку!
Нужно посчитать и вывести на экран количество "счастливых билетов"(к примеру: 111201, 333009 и так далее)
Примечание :
Счастливый билетик имеет вид XXXXXX.
var
a,b,c,d,e,f: integer;
g: double;
begin
g:=0;
for a:=0 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do
for d:=0 to 9 do
for e:=0 to 9 do
for f:=0 to 9 do
if a+b+c=d+e+f then g:=g+1;
writeln(g);
end.
PS: обычно я решаю сам, а этот пример подсмотрел - уж очень мне понравилась простота решения, единственное что я добавил - это g - переменная типа double, т.к. результат получается больше чем может представлять пременная типа int, ну и в оригинале было inc - пришлось сдеать g=g+1, ибо inc только для целочисленной математики, еще бы полагалось выводить знаки только до запятой (число то все равно целое), но это уже сами кому надо...
вывести матрицу из файла с++
вывести матрицу из файла с++
часто встречаю подобные задачи, вот один из способов реализации
отмечу только, что раз мы считываем матрицу из файла - то мы заранее
не знаем ее размер, а раз так - то память под неё мы выделяем динамически
с помощью оператора new (не забываем освобождать после использования)
и нужно придумать в каком виде хранить матрицу
создадим текстовый файл matrix.txt
с таким содержанием
в нем первая строка содержит два числа,
первое - количество строк матрицы, второе кол-во столбцов
и вот вывод программы
часто встречаю подобные задачи, вот один из способов реализации
отмечу только, что раз мы считываем матрицу из файла - то мы заранее
не знаем ее размер, а раз так - то память под неё мы выделяем динамически
с помощью оператора new (не забываем освобождать после использования)
и нужно придумать в каком виде хранить матрицу
создадим текстовый файл matrix.txt
с таким содержанием
2 3 1 2 3 4 5 6
в нем первая строка содержит два числа,
первое - количество строк матрицы, второе кол-во столбцов
#include <stdio.h>
int main(int argc, char * argv[])
{
int n = 0;
int m = 0;
int **a;
//открываем файл
FILE * fp = fopen("matrix.txt", "r");
if (fp)
{
//читаем количество строк и столбцов
fscanf(fp, "%d %d", &n, &m);
//выделяем место
*a = new int(n);
for (int i = 0; i < n; i++) a[i] = new int(m);
//считываем данные из файла в матрицу
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
fscanf(fp, "%d", &a[i][j]);
}
}
//закрываем файл
fclose(fp);
}
//печать матрицы
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
//освобождение памяти
for (int i = 0; i < n; i++) delete a[i];
delete *a;
return 0;
}
и вот вывод программы
1 2 3 4 5 6
перевод чисел из двоичной системы в текст
/* перевод чисел из двоичной системы в текст */
#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");
}
пятница, 7 мая 2010 г.
четверг, 6 мая 2010 г.
найти сумму цифр в числе используя рекурсивную подпрограмму
для простоты будем считать что числа только натуральные
function fun(x:integer; summa: integer) : integer;
var
d, m: integer;
begin
m := x mod 10;
d := x div 10;
if x > 0
then fun := fun(d, summa + m)
else fun := summa + m;
end;
begin
writeln('cумма цифр = ', fun(1234, 0));
end.
Подписаться на:
Комментарии (Atom)