2009-07-05から1日間の記事一覧

入出力と文字

数字文字のカウントgetchar()関数は、文字列を読み込んで、それを返す関数。 読み込み時にエラーが発生したり、入力の終了に達すると、EOFという値を返す。 #include<stdio.h> int main(void){ int i,ch; int cnt[10] = {0}; while(1){ ch = getchar(); if(ch == EOF)</stdio.h>…

再帰関数呼び出し

階乗を求めるプログラム #include <stdio.h> int factorial(int n){ if(n>0){ return (n * factorial(n-1)); }else{ return 1; } } int main(void){ int num; printf("整数を入力してください。"); scanf("%d",&num); printf("その数の階乗は%dです。\n",factorial(nu</stdio.h>…

列挙体

#include<stdio.h> #define putsa(str) (putchar('\a'),puts(str)) enum animal {Dog,Cat,Monkey,Invalid}; void dog(void){ puts("わんわん"); } void cat(void){ puts("にゃんにゃん"); } void monkey(void){ puts("きっきっ"); } enum animal select(void){ int tm</stdio.h>…

関数形式マクロ

関数形式マクロを利用したプログラムの例 #include<stdio.h> #define sqr(x) ( (x) * (x) ) int main(void){ int nx; double dx; printf("整数を入力してください。"); scanf("%d",&nx); printf("その数の2乗は%dです。\n",sqr(nx)); printf("実数を入力してください</stdio.h>…

記憶域期間

#include<stdio.h> int fx = 0; void func(void){ static sx = 0; int ax = 0; printf("%3d%3d%3d\n",ax++,sx++,fx++); } int main(void){ int i; puts(" ax sx fx"); puts("---------"); for(i=0;i<10;i++){ func(); } puts("---------"); return 0; } 自動記憶域期</stdio.h>…

多次元配列の受け渡し

2行3列の行列を加算するプログラム #include<stdio.h> void mat_add(const int ma[2][3],const int mb[2][3],int mc[2][3]){ int i,j; for(i=0;i<2;i++){ for(j=0;j<3;j++){ mc[i][j] = ma[i][j] + mb[i][j]; } } } int main(void){ int i,j; int ma[2][3] = {{1,2,3}</stdio.h>…

番兵法を用いた遂次探索

番兵法を用いた遂次探索 #include<stdio.h> #define NUMBER 5 #define FAILED -1 int search(int vc[],int key,int no){ int i = 0; vc[no] = key; while(1){ if(vc[i] == key){ break; } i++; } return(i == no ? FAILED:i); } int main(void){ int i,ky,idx; int vx</stdio.h>…

C言語 〜遂次探索〜

遂次探索 #include<stdio.h> #define NUMBER 5 #define FAILED -1 int search(const int vc[],int key,int no){ int i = 0; while(1){ if(i==no){ return (FAILED); } if(vc[i] == key){ return i; } i++; } } int main(void){ int i,ky,idx; int vx[NUMBER]; for(i=0</stdio.h>…

関数に配列を受け渡す

#include<stdio.h> #define NUMBER 5 int max_of(int vc[],int no){ int i; int max = vc[0]; for(i=1;i<no;i++){ if(vc[i] > max){ max = vc[i]; } } return max; } int main(void){ int i; int eng[NUMBER]; int mat[NUMBER]; int max_e,max_m; printf("%d人の点数を入力してください。\</no;i++){></stdio.h>…

復習

最高点を求めるプログラム #include<stdio.h> #define NUMBER 5 int tensu[NUMBER]; int top(void); int main(void){ extern int tensu[]; int i; printf("%d人の点数を入力してください。",NUMBER); for(i=0;i<NUMBER;i++){ do{ printf("%d:",i+1); scanf("%d",&tensu[i]); if(tensu[i] < 0 || tensu[i] > 100 ){ printf("点数は0以上100以下で入力してください</number;i++){></stdio.h>…

文字列を操作する

文字列の長さを調べる #include<stdio.h> unsigned str_length(const char str[]){ unsigned len = 0; while(str[len]){ len++; } return len; } int main(void){ char st[100]; printf("文字列を入力してください。"); scanf("%s",st); printf("文字列の長さは%uです</stdio.h>…

文字列の配列

文字列も配列化することができる。 #include<stdio.h> int main(void){ int i; char cs[][10] = {"banana","orange","pear"}; for(i=0;i<3;i++){ printf("cs[%d] =\"%s\"\n",i,cs[i]); } return 0; } 文字列配列の要素である文字列の読み込み配列の各要素に、標準入力</stdio.h>…

文字列

文字列リテラルは、整数での50や、浮動小数点数での3.14といった定数のようなもの。 オブジェクトに格納することによって、自由に取り扱うことができる。文字の配列に文字列を格納・表示してみる #include<stdio.h> int main(void){ char str[4]; str[0] = 'A'; str[1</stdio.h>…