C言語

JVMのソースコードを読むための準備

JDK/JRE/JVM JVMとは Javaバイトコードとして定義された命令セットを実行するスタック型の仮想マシン(Java Virtual Machine) 。JRE(Java Runtime Environment)に入っている。 JREとは Java実行環境。JVMやAPIが入っている。 JDKとは Java開発キット(Java Dev…

標準ライブラリのqsort

#include<stdio.h> #include<stdlib.h> int intcomp(int *x, int *y) { return *x - *y; } int a[10000000]; int main(void) { int i, n=0; while (scanf("%d", &a[n]) != EOF) n++; qsort(a, n, sizeof(int), intcomp); for (i = 0; i < n; i++) printf("%d\n", a[i]); return </stdlib.h></stdio.h>…

C言語の復習<配列>1000までの整数の全ての素数を求めるプログラム

#include <stdio.h> #define N 1000 /* Nまでの素数を求める */ #define TRUE 1 /* 真:素数である */ #define FALSE 0 /* 偽:素数でない */ char is_prime[ N+1 ]; /* 結果を格納する配列 */ int main( void ) { int i, j, k = 0; /* 配列を初期化 */ for( i = 1; i <</stdio.h>…

C言語の復習<関数>素数を判定するプログラム

JavaをやっているうちにC言語のことをすっかり忘れてしまったので少しずつ復習する。 素数を判定するプログラム #include <stdio.h> int prime(int n); int main(void) { int n; printf("自然数を入力してください>>>"); scanf("%d", &n);/*データの入力*/ printf("%d</stdio.h>…

C言語 字句解析

/* 英文のデータファイルを読み込み、英文中の単語を抽出後、文字コード順に並び替えを行い、頻度とともに一覧表ファイルに出力する。 ・英文中の単語のうち、英単語は英文字、ハイフンで構成されており、数字データは数字、及びピリオドで構成されている。 …

C言語 構造体の操作

/* 成績データを入力し、入力データと3科目の合計点、平均点を出力する。 入力データが終了したら、各科目の平均点、総平均点を出力する。 ・成績データの各項目をメンバとする構造体を宣言する ・宣言した構造体の領域を定義し、メンバに対応する成績データ…

C言語 社員データを並び替える

/* ***概要*** 社員データを入力し、所属、社員番号の昇順に並べ替えて出力する。 ***処理条件*** ・社員データの各項目をメンバとする構造体を宣言し、社員データ格納用の領域を定義する。 ・社員データにエラーはないものとする。 ・全てのデータを格納後…

C言語 数値かどうかのチェック

/* ・1桁から9桁までの数字を文字列で入力し、各桁の数値チェック行う。 ・先頭1文字目に'+'または'-'の符号の入力もOKとし、符号は桁数には数えない。 ・エラーがない場合は、文字列を数値に変換する。 ・処理は繰り返し行えることとし、文字列入力終了(EO…

C言語 英単語の並び替え

/* ・30個以内の英単語(半角英数字)を入力して入力順に配列に格納する。 ・入力終了後に昇順に文字列をソートする。 ・英単語の入力文字列は半角20文字までとする。 ・入力した英単語の個数とソート前の英単語およびソート後の英単語を出力する。 ・文字列の…

C言語 指定されたようにデータの並び替えをする

/* ・入力データを指定の順で並べ替え出力する。一行に出力するデータ個数の指定も行う。 ・並び順、1行に出力する個数及び整数データを入力し、ソート前とソート後のデータを出力する。 ・データは出力時に、内容がわかるようなメッセージも合わせて出力す…

C言語 文字列の比較と連結、交換(自作)

/* 2つの文字列のを入力し、以下の処理を行う。 ①入力した文字列の長さを調べる ②2つの文字列の比較を行う ③1番目の文字列の後ろに2番目の文字列をつなぎ1番目の文字列とする ④2つの文字列の交換を行う */ #include <stdio.h> #include <string.h> int str_len(char *p); int st</string.h></stdio.h>…

C言語 ポインタを引数とした関数を使用した四則演算

/* *2つの整数(-9999〜9999)を入力し、入力した2数の四則演算を行う。 * *入力データと演算結果を見やすいようにレイアウトして出力する。 * *和差積の結果は整数、商は実数とし、出力は小数点以下2桁までとする。 * *四則演算関数の戻り値がエラーの場合、…

C言語 辺の長さから三角形が成立するか調べて面積を計算し形状を判定する

/* 4つの実数型データ(A,B,C,D)を読み込み、そのうち3つの数の組をすべて取り出し、三角形となるものについてのみ、面積を計算する。 また、その形状が、直角三角形、鋭角三角形、鈍角三角形のいずれであるかを求める。 */ #include <stdio.h> #include <string.h> #include <math.h> in</math.h></string.h></stdio.h>…

C言語 契約アンペアと使用電力量から電気料金を計算する

/* 契約アンペアと使用電力量を入力し、基本料金、従量料金、消費税、電気料金を算出し処理結果を出力する。 処理は繰り返し行えることとし、契約アンペアまたは使用電力量の入力がEOFの場合に処理終了とする。 -処理条件- 契約アンペア、契約アンペアに対す…

C言語 演算子と計算

/* 演算子と2つの整数値(-99999〜99999)を順に入力し、指定の演算子による演算を行い 結果を出力する。 演算子が'/'または'%'で2番目に入力した数値がゼロの場合は、処理負荷のメッセージを表示し、2番目の整数の再入力を行う。 正常の場合は計算式として入…

C言語 言語区分処理

/* 入力した月に該当する名称を指定の言語で出力する。 言語区分(1:英語 2:日本語 0:終了)と月(1-12)を入力する。 入力値をチェックしエラーの場合は再入力できるようにする。 処理は繰り返し行えることとし、言語区分に0が入力された場合に処理終了とする。…

C言語 素数の表示

/* 正の整数(3〜999)を入力し、入力した値までの素数を出力する。 処理は繰り返し行えることとし、入力値が0の場合に処理終了とする。 */ #include <stdio.h> int main() { int i, j, n, k = 0, d[200], cnt = 0; for (;;) { printf("整数3〜999を入力-->"); scanf("%</stdio.h>…

C言語 指定された駅への東京駅からの距離、運賃

/* 東海道新幹線の駅名を入力し、東京からの順序番号と距離及び普通運賃を出力する。 処理は繰り返し行えるものとし、入力した駅名が"終了"の時に処理終了とする。 */ #include <stdio.h> #include <string.h> typedef struct station { int no; char name[10]; double distance</string.h></stdio.h>…

C言語 魔方陣

/* 5x5の魔方陣を出力する。 魔方陣とは、正方形のnxnのマス目に1〜n^2の数値を埋めて縦、横、斜めの各列の和が全ておなじになるように設定したもの。nは3以上の奇数である。 「C言語による最新アルゴリズム事典」奥村晴彦 技術評論社 によれば 「n次(nxn)の…

C言語 データの入力と並び替え

/******************************************** 整数データ(-9999〜9999)を順次入力(11.txt)し配列に格納する。 全データ入力後にデータを昇順に並べ替えて出力する。 **********************************************/ #include <stdio.h> #include <string.h> int read(int *</string.h></stdio.h>…

C言語 最大公約数と最小公倍数

/* 2〜10000までの正の整数を2つ入力し、2数の最大公約数と最小公倍数を求める。 どちらか整数の入力時にゼロが入力された場合に処理終了とする。 */ #include <stdio.h> int input(int *data); int errcheck(int x, int y); int gcd(int x, int y); int main() { int</stdio.h>…

C言語 カレンダーの作成

/* 年を西暦4桁(1000〜9999)、月を1桁か2桁(1〜12)の正の整数で入力し、指定の月のカレンダーを作成する。 -出力例- 年を西暦4桁(1000〜9999)、月を1桁または2桁(1〜12)で入力 年==>2015 月==>6 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1…

C言語 三角形の描画

/*指定の高さで、左下が直角の三角形を*で表示する。 -処理条件- 高さは整数値3〜9の正の数値とする。 -結果例- 高さ = 5 * ** *** **** ***** */ #include <stdio.h> int main() { int i,j,ver; scanf("%d",&ver); printf("高さ = %d",ver); for(i=0;i<=ver;i++){ fo</stdio.h>…

C言語 7の倍数の表示

/*二つの正の整数(1〜100)を入力し、その2数の範囲内にある7の倍数を出力する。入力値がエラーの場合はエラーメッセージを出力し、再入力できるようにする。 -処理条件- 繰り返し処理の初期値、増分値については、入力した小さい方の値以上で直近の7の倍数を…

C言語 最大値、最小値

/* 戦闘でデータ件数を入力し、件数分の整数を順次入力し、全データ入力後に入力したデータの合計、平均、最小値、最大値、負の個数、ゼロの個数、正の個数を出力する。 ---処理条件-- データ件数(0〜99)と件数分の整数データ(-9999〜9999の範囲の整数)をフ…

C言語 給与支給額、残業時間数の算出

/* 職級、扶養者及び残業時間数を入力し、給与支給額を算出する。 ---処理条件--- 各入力項目は整数とする。 職級は1〜7とする。 扶養者数は0〜5人とする。 残業時間数は0〜200時間とする。 職級が1〜3の場合は、残業時間数の入力は行わない。 */ #include <stdio.h> </stdio.h>…

C言語 ランキング

/*整数値(0〜900)を入力し、ランクを判定し入力値とともに判定結果を出力する。*/ #include <stdio.h> int main() { int rank; printf("ランクの判定\n整数値を入力"); scanf("%d",&rank); if(rank>=0&&rank<=100)printf("F\n"); if(rank>=101&&rank<=200)printf("E\n</stdio.h>…

C言語 理想体重

/*身長と体重を入力し、身長から計算した理想体重と入力した体重とを比較して、それぞれ該当するメッセージを出力する。*/ #include <stdio.h> int errmsg(int tall, double weight); int main(){ int tall; double weight,max_ideal,min_ideal; printf("理想体重の計</stdio.h>…

C言語 合計金額の計算

/* 商品の個数を入力し、商品名、単価、個数、金額を出力する。 最後に全ての商品の合計金額を出力する。 */ #include <stdio.h> #include <string.h> typedef struct menu{ char name[32]; int price; int num; int sum; }menu_t; int main(void){ menu_t menu[4]; int i, alls</string.h></stdio.h>…

C言語 16進数形式表示

/* 2つの整数値を入力し、以下の計算を行い結果を出力する。 ①整数1 + 整数2 ②整数1 - 整数2 ③整数1 × 整数2 ④整数1 ÷ 整数2 の商と余り ⑤整数1 ÷ 整数2 */ # include <stdio.h> int main(void){ int seisu1, seisu2; short shortWa, shortSa,shortSeki, shortShou, s</stdio.h>…

C言語 ファイル8(マッチング(照合)処理)

/* 商品マスタ3(syohin3.mst)と変更ファイル(henko.trn)を入力し、マッチング処理に寄り商品マスタ4を出力する。処理後に各処理の処理件数を標準出力へ出力する。 ---処理区分--- AD:追加データ UP:単価変更データ DL:削除データ */ #include <stdio.h> #include <string.h> int</string.h></stdio.h>…

C言語 ファイル7(マージ処理)

/* 商品マスタ1(syohin1.mst)と商品マスタ2を入力し、マージ処理により商品マスタ3(syhohin3.mst)を出力する。処理後に商品マスタ1,商品マスタ2,商品マスタ3の処理レコード数を標準出力へ出力する。 */ #include <stdio.h> int main (void) { FILE *fp1,*fp2,*fpout; </stdio.h>…

C言語 ファイル6(グループインジケート)

/* 売上データ(uriage.dat)より、売上一覧表を出力する。重複する商品コード、商品名は出力しない。 */ #include <stdio.h> int main (void) { struct uriage{ int denpyou; int code; char name[32]; int price; int num; int sum; }data[256]; int i=0,j=0,gtotal=0</stdio.h>…

C言語 ファイル5(グループトータルによる集計表の作成)

/* 売上データ(uriage.dat)より、売上一覧表を出力する。 */ #include <stdio.h> int main (void) { struct uriage{ int denpyou; int code; char name[32]; int price; int num; int sum; }data[256]; int i=0,j=0,gtotal=0,total=0,n=0; FILE *fp; fp=fopen("uriage</stdio.h>…

C言語 ファイル4(テキストファイルの探索)

/* 商品コードを入力し、該当する商品の商品名、単価を検索(syohin.mstより)して出力する。繰り返し検索できるようにし、商品コードに99が入力されたら終了する。 */ #include <stdio.h> int main (void) { int code,price,cnt=0,in_code,kensuu=0, i; char name[32],</stdio.h>…

C言語 ファイル3(テキストの追加書込)

/* 標準入力より商品コード、商品名、単価を入力し、商品マスタ(syohin.mst)に追加出力する。1回の実行で1レコードのみの出力とする。 次の2レコードを追加する。 74 分度器 370 85 コンパス 230 */ #include <stdio.h> int main (void) { int code,price,cnt=0; char</stdio.h>…

C言語 ファイル2(エラー処理)

/* 標準入力より入力ファイル名(syohin.mst)と出力ファイル名(syohin.bak)を入力し、入力ファイル名の内容を出力ファイルにコピーする。コピー後にコピーしたレコード数を出力する。入力ファイルが存在しない場合はエラーメッセージを出力し、コピーは行わな…

C言語 ファイル1(テキストファイルのオープン、クローズ)

/* 商品マスタを読み込み、商品一覧表を出力する(商品マスタを実行前に作成しておく)。 */ #include <stdio.h> int main (void) { int code,price,i; char name[32]; FILE *fp; fp=fopen("syohin.mst","r"); if(fp==NULL){ return -1; } printf("***商品一覧表***\n")</stdio.h>…

C言語 構造体6(一覧表の作成、ランキング)

/* 成績データをリダイレクション入力(seiseki.txt)し構造体配列に格納する。3科目の成績一覧表を出力する。 ---出力例--- 成績一覧表(英語) No 氏名 英語 順位 ----------------------- 147 takahashi 81 1 206 tanaka 81 1 553 suzuki 70 3 447 watanabe 6…

C言語 構造体5(リダイレクション・サーチ・一覧表の作成)

/* 売上げデータをリダイレクション入力(uriage.txt)し、該当する商品の商品名、単価を検索して売上一覧表を出力する。 */ #include <stdio.h> int main(void){ struct product{ int code; char name[20]; int price; int amount; int sum; }; struct product data[]=</stdio.h>…

C言語 構造体4(構造体配列を使ったサーチ)

/* 商品コードを入力し、該当する商品の商品名、単価を検索して出力する。繰り返し検索できるようにし、商品コードに99が入力されたら終了する。 */ #include <stdio.h> int main(void){ struct product{ int no; char name[20]; int price; }; struct product data[]</stdio.h>…

C言語 構造体3(構造体配列へのリダイレクション入力)

/* 成績データをリダイレクション入力し、構造体配列に格納し、成績一覧表を出力する。 */ #include <stdio.h> int main (void) { struct roll{ int no; char name[20]; int ei; int su; int koku; int sum; double ave; int rank; }; struct roll data[5]; int i=0,j</stdio.h>…

C言語 構造体2(構造体配列のソート)

/* 社員名簿の構造体配列を初期化し、年齢の降順に出力する。 */ #include <stdio.h> #include <string.h> int main(void){ struct birthday{ int y; int m; int d; }; struct roll{ int num; char name[20]; int ny; int nm; int nd; struct birthday ymd; }; struct roll data</string.h></stdio.h>…

C言語 構造体1(構造体の宣言・定義・入出力・コピー)

/* 構造体変数を2つ定義し、1つ目の構造体変数にデータを入力する。入力後に1つ目の構造体変数の内容を2つ目の構造体変数にコピーし出力する。 */ #include <stdio.h> int main(void){ struct roll{ int no; char name[32]; double tall; double weight; }; struct ro</stdio.h>…

C言語 文字列12(strcmp関数の自作)

/* 標準入力より2つの文字列を入力し、文字数を比較する。比較した結果は次のように標準出力する。 1つ目に入力した文字列が大きい場合:1つ目の文字列>2つ目の文字列 2つ目に入力した文字列が大きい場合:1つ目の文字列<2つ目の文字列 2つの文字列が同じ場…

C言語 文字列11(strlen関数、strcat関数の自作)

/* 標準入力より2つの文字列を入力し、文字数を数える。2つの文字列合計文字数が20文字以内の時は2つ目に入力した文字列の後ろに1つ目の文字列を連結し出力する。2つの文字列合計文字数が20を超えるときは連結しない。strlen、strcatと同等の機能を持つstr_l…

C言語 文字列10(strcpyの自作)

/* 標準入力より文字列を入力し、別の文字列をにコピーして出力する。strcpyと同等の機能を持つstr_copyを作る。 */ #include <stdio.h> #include <string.h> void str_copy(char *p1, char *p2); int main(void){ char data1[255], data2[255]; char *p1, *p2; printf("コピー</string.h></stdio.h>…

C言語 文字列9(strcmp関数)

/* 標準入力より2つの文字列を入力し、文字数を比較する。比較した結果は次のように標準出力する。 1つ目に入力した文字列が大きい場合:1つ目の文字列>2つ目の文字列 2つ目に入力した文字列が大きい場合:1つ目の文字列<2つ目の文字列 2つの文字列が同じ場…

C言語 文字列8(strlen関数、strcat関数)

/* 標準入力より2つの文字列を入力し、文字数を数える。2つの文字列合計文字数が20文字以内の時は2つ目に入力した文字列の後ろに1つ目の文字列を連結し出力する。2つの文字列合計文字数が20を超えるときは連結しない。strlen、strcatを使う。 */ #include <stdio.h> #</stdio.h>…

C言語 文字列7(strcpy関数)

/* 標準入力より文字列を入力し、別の文字列をにコピーして出力する。strcpyを使う。 */ #include <stdio.h> #include <string.h> int main(void){ char data1[255], data2[255]; printf("コピー元文字列の入力==>"); scanf("%s", data1); printf("コピー元文字列の出力 %s\n", </string.h></stdio.h>…