--- title: アルゴリズム author: kazu634 date: 2008-04-24 url: /2008/04/24/_949/ wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:3925;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - つれづれ ---

 研修で簡単なアルゴリズムを勉強している。まだ前半なのでフローチャートを書いているだけ。これだとちょっとふぬけてしまうので、勉強したフローチャートをCで書いてみた。

値の交換

#include <stdio.h>
int main(void);
int main(void)
{
int x, y, z;
x = 10;
y = 15;
printf ("Before Swap:\n");
printf ("x: %2d \n", x);
printf ("y: %2d \n", y);
z = x;
x = y;
y = z;
printf ("\nAfter Swap:\n");
printf ("x: %2d \n", x);
printf ("y: %2d \n", y);
}

三つの値の中から大きな数値を取り出す

#include <stdio.h>
int main(void);
int main(void)
{
int x, y, z;
int max;
x = 13;
y = 45;
z = 30;
max = x;
if (max <= y) {
max = y;
}
if (max <= z) {
max = z;
}
printf ("max: %2d\n", max);
}

1~3までの和を求める

#include <stdio.h>
int main(void);
int main(void)
{
int i, sum;
sum = ;
for (i = ;i <= 3;i++) {
sum = sum + i;
}
printf ("sum is: %2d\n", sum);
}

配列の要素をすべて足す

 冗長だ。配列の要素数を取得できる命令はこれから自習するから、その時にまた振り返ろう。

#include <stdio.h>
int main(void);
int main(void)
{
int i[5], sum, j;
i[] = 10;
i[1] = 20;
i[2] = 30;
i[3] = 40;
i[4] = 50;
sum = ;
for (j = ;j <= 4; j++) {
sum = sum + i[j];
}
printf ("%2d\n", sum);
}