C/C++/C#

C/C++/C#

C言語で複数の変数を返したい時

C言語では通常の関数の使い方ではreturnによって複数の変数を返すことはできない。こういう時はポインタを使えばうまくいく。 #include <stdio.h> void test(int a, int* p1,int *p2); voi...
C/C++/C#

C言語で漸化式を解く

漸化式とは前回計算した値を使い今の値を計算するような式である。今回は簡単な漸化式 \begin{align}a_n=a_{n-1}+b\end{align} の形をした漸化式をC言語で計算する。 ソース #include "stdio.h"...
C/C++/C#

C言語でFizz Buzz

これの続き。 #include<stdio.h> int main() { int i, N = 36; for (i = 1; i <= N; i++) { if ((i % 3 == 0) && (i % 5 == 0)) { prin...
C/C++/C#

if文で予期しないエラーを出さないために

定数比較するときif文を使う場合が多い。一般的なif文の構文は if (num == 3) { //処理 } である。もしこの文を書き間違え if (num = 3) { //処理 } としたとき、numの値に関係なく処理が行われてしまう。...
C/C++/C#

正多角形の外角の和と一つの角度の値を返すプログラムを作る

正多角形の内角の一つ分の大きさは \begin{align}\theta_{n} = \frac{180(n-2)}{n}\end{align} なので一つ分の外角は \begin{align}\theta_{n} = 180 -\frac...
C/C++/C#

正多角形の内角の和と一つの角度の値を返すプログラムを作る

正多角形の内角の和は \begin{align}\theta_o = 180(n-2)\end{align} 一つ分は \begin{align}\theta_{n} = \frac{180(n-2)}{n}\end{align} 大きくす...
C/C++/C#

コラッツ予想を拡張する

前回の記事で触れたコラッツ予想を負の数を扱えるよう拡張する。 負の数でやろうとすると循環してしまい無限ループとなるので上限繰り返し数を設けた。上限繰り返し数は #define MAX 10 で定めている。たとえばこのプログラムに\(-5\)...
C/C++/C#

コラッツ予想を試す

コラッツ予想は初めに任意の正の整数\(n\)を定めこれを \(n\)が偶数の時 \begin{align}n=\frac{n}{2}\end{align} \(n\) が奇数の場合、 \begin{align}n=3n+1\end{alig...
C/C++/C#

C言語で順列と組合せを計算する

これのつづき。階乗を定義したので、順列と組み合わせを計算する。順列と組合せは \begin{align}\mathrm{{}_{n} C_r} &= \frac{n!}{ r!(n - r)!} \\\mathrm{{}_{n}P_r} &...
C/C++/C#

C言語で階乗を計算する

関数を定義して階乗を計算する。numに計算したい階乗\(n!\)の \(n\) を設定する。大きな数を使う場合はlong intなどを使えばいい。 int factorial(int num) { int i, fact = 1; for ...
C/C++/C#

C言語での多次元配列の渡し方

C言語で配列を宣言する場合 int mat; などとする。このように定義された配列を関数に渡すときは先頭のアドレスを渡せばよく、実際の関数の宣言は void func(int *mat) となる。 一方で多次元配列のこれが多次元になると話が...