как поменять элементы массива местами (Си)
самый простой способ для понимания это представить себе переменную в виде стакана с водой
итого мы имеем 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)