演習3-5 K&R プログラミング言語C
演習3-5 #include <stdio.h> #include <string.h> #define MAX 1024 void itob(unsigned n, char s[], int b); void reverse(char s[]); int main(int argc, char *argv[]) { char str1[MAX]; char str2[M…続きを読む
演習3-5 #include <stdio.h> #include <string.h> #define MAX 1024 void itob(unsigned n, char s[], int b); void reverse(char s[]); int main(int argc, char *argv[]) { char str1[MAX]; char str2[M…続きを読む
演習3-4 int の有効範囲を調べる。 #include <stdio.h> #include <limits.h> int main(int argc, char *argv[]) { printf("INT_MIN => %12d\n", INT_MIN); printf("INT_MAX => %12d\n", I…続きを読む
演習3-3 #include <stdio.h> #define MAX 1024 void expand(char s1[], char s2[]); int main(int argc, char *argv[]) { char *str1 = "-c-h-r-b, a-z0-9"; char str2[MAX]; expand(str1, str2); pri…続きを読む
演習3-2 改行、タブを \n、\t に変換する escape 関数 #include <stdio.h> #define MAX 1024 void escape(char *s, char *t); int main(int argc, char *argv[]) { int i, c; char s[MAX]; char t[MAX]; i = 0; while ((c = ge…続きを読む
演習3-1 元の binsearch と改良版 binsearch2 とで実行時間の差を比べる。 #include <stdio.h> #include <time.h> #define MAXSIZE 0x100000 int binsearch(int x, int v[], int n); int binsearch2(int x, int v[], int n); …続きを読む
演習2-10 #include <stdio.h> int lower(int c); int main(int argc, char *argv[]) { int c; while((c = getchar()) != EOF) { putchar(lower(c)); } return 0; } int lower(int c) { return (c >= ‘A’ &…続きを読む
2.10 代入演算子と式 /* 右端のビットが 1 の場合 b をインクリメントする * x = 141 : 1000 1101 => 141 inc * x >>= 1 : 0100 0110 => 70 * x >>= 1 : 0010 0011 => 35 inc * x >>= 1 : 0001 0001 => 17 inc * …続きを読む
演習2-8 /* * x = 75, n = 3 * 75 => 0100 1011 * 105 => 0110 1001 */ #include <stdio.h> #include <limits.h> unsigned char rightrot(unsigned char x, int n); int main(int argc, char *argv[…続きを読む
演習2-7 /* * x : 62 => 0011 1110 * p : 6 * n : 3 * * x反転 => 1100 0001 * mask => 0111 0000 * vmask => 1000 1111 * * x vmasked => 0000 1110 * x反転 masked => 0100 0000 * OR * => 0100 11…続きを読む
演習2-6 問題文の日本語がちょっとわかりにくいが、以下のように動作する関数 setbits を作る。 #include <stdio.h> unsigned setbits(unsigned x, int p, int n, unsigned y); int main(int argc, char *argv[]) { unsigned int x, y; int p, n; x =…続きを読む