Cプログラミング

 Computer >> コンピューター >  >> プログラミング >> Cプログラミング
  1. C言語で整数に含まれるすべての0を1に置き換えるプログラム

    問題与えられた整数の中にあるすべての「0(ゼロ)」を「1」に置き換えるプログラムを作成します。入力として整数が与えられたとき、その数値に含まれる0をすべて1へ置き換えて出力するのが目的です。解決策以下の具体例で考えてみましょう。入力が 102410 の場合、出力は 112411 となります。アルゴリズム整数内の0をすべて1に置き換えるための手順は以下の通りです。ステップ1: ユーザーから整数を入力として受け取ります。ステップ2: 整数を1桁ずつ走査します。ステップ3: 「0」の桁が見つかったら、「1」に置き換えます。ステップ4: 置き換え後の整数を出力します。処理のポイントこのプログラムでは再

  2. 【C言語】二分探索(バイナリサーチ)で配列内の最小要素を見つける方法

    C言語には、目的のデータを効率よく見つけ出すための探索アルゴリズムとして、主に次の2つの手法が用意されています。 線形探索(リニアサーチ) 二分探索(バイナリサーチ) 二分探索(バイナリサーチ)とは この手法はソート済み(整列済み)のリストにのみ適用できます。 対象のリストを半分ずつに分割しながら、探索範囲を絞り込んでいきます。 探したいキーと、リスト中央の要素を比較します。 比較の結果、次の3つの場合が考えられます。 中央の要素がキーと一致した場合 → 探索は成功し、その時点で終了します。 中央の要素がキーより大きい場合 → 左側の領域で探索を続けます。 中央の要素がキーより小さ

  3. 連結リスト(リンクリスト)の長さを求めるC言語プログラム

    連結リスト(リンクリスト)は動的メモリ割り当てを利用するデータ構造であり、要素の追加や削除に応じてサイズが柔軟に変化します。連結リストは「ノード」と呼ばれる要素の集合として定義され、各ノードはデータ部とリンク部(次のノードへのポインタ)の2つの部分で構成されています。データ・リンク・連結リストの関係は、以下のように表現できます。連結リストの種類連結リストには主に以下の4種類があります。単方向連結リスト(シングルリンクリスト)双方向連結リスト(ダブルリンクリスト)循環単方向連結リスト循環双方向連結リスト再帰を使って長さを求めるロジック本記事では、再帰呼び出しを利用して連結リストの長さ(ノード数)

  4. C言語で一次方程式の解を求めるプログラムの作り方

    C言語では、ソフトウェア開発の基本的な手法(要件定義→分析→アルゴリズム設計→実装→テスト)を応用して、1変数の一次方程式を解くプログラムを作成できます。この記事では、その流れに沿って具体的な手順を解説します。 数学的な背景 1変数の一次方程式は一般に ax + b = 0 の形式で表されます。これを x について解くと、次のようになります。 x = -b / a つまり、a と b の値が分かれば、x の値を機械的に計算できることになります。 要件 方程式は ax + b = 0 の形式で与えられること a と b はユーザーからの入力値とし、x の値を求めることを目的とする 分析 この

  5. 【C言語】ある整数が2つの素数の和で表せるかどうかを判定するプログラム

    問題概要 与えられた正の整数 N が、2つの素数の和として表現できるかどうかを判定するプログラムを、C言語で作成します。 例えば 20 は「3 + 17」や「13 + 7」というように、複数の素数の組み合わせで表すことができます。一方で、11 のように2つの素数の和として表せない数も存在します。 考え方 まず、具体例を使って考えてみましょう。 20 = 3 + 17(どちらも素数) 20 = 13 + 7(どちらも素数) このように、ある数を2つの素数の和で表せるか調べるには、「小さい方の数 i」を 2 から順に増やしながら、「i と (N − i) がどちらも素数になる組み合わせが存在す

  6. C言語で配列内の一意な要素(重複しない要素)を検索するプログラム

    問題の概要配列の中から、他と重複していない「一意な要素」を見つけるには、二重ループを使用します。外側のループで現在注目している要素を取り出し、内側のループでその要素が配列内の他の場所にも存在するかどうかを確認します。解決策以下の配列を例に考えてみましょう。15, 15, 16, 15, 13, 15この場合、配列内で一度しか現れていない要素は 16 と 13 の2つです。アルゴリズム配列内の一意な要素(重複しない要素)を見つけるための手順は以下の通りです。ステップ1: 配列を宣言し、実行時に配列の要素を入力します。ステップ2: 配列を走査し、現在注目している要素が配列内の他の位置にすでに存在す

  7. 【初心者向け】C言語のポインタを使って配列要素の合計を計算する方法

    ポインタとは?ポインタ(Pointer)とは、他の変数のアドレス(メモリ上の場所)を格納するための変数のことです。例えば、次のような変数宣言を見てみましょう。int qty = 179;この場合、変数 qty には値 179 が格納されています。ポインタは、この qty が配置されているメモリ上のアドレスを保持することができます。ポインタの宣言ポインタを宣言する構文は以下の通りです。int *p;ここで p はポインタ変数であり、他の int 型変数のアドレスを保持します。宣言時には、変数名の前に間接演算子 *(アスタリスク)を付けます。ポインタの初期化ポインタ変数を初期化するには、アドレス演

  8. C言語で配列を降順にソートするプログラムの書き方

    問題与えられた配列を、書かれたコードに従って降順または昇順に並べ替えます。ここでは、配列を降順(大きい順)にソートするCプログラムを紹介します。解決策配列とは、共通の名前を持つ関連性のあるデータ項目の集まりのことです。配列内の特定の値は、「インデックス番号(添字)」によって識別されます。配列の宣言配列を宣言するための基本構文は以下のとおりです。データ型 配列名 [サイズ];例えば、次のように宣言します。float marks[50];この宣言により、「marks」は50個のfloat型要素を格納できる配列となります。int number[10];この宣言により、「number」は最大10個の整

  9. C言語で配列を昇順にソートするプログラムの書き方【初心者向け解説】

    問題入力された配列を、昇順または降順に並べ替えるプログラムを作成します。本記事では、C言語を使って配列を昇順にソートする方法を、サンプルコードとともにわかりやすく解説します。 解決策配列(アレイ)とは、共通の名前を持つ関連性のあるデータ項目の集まりのことです。配列内の個々の値は、「インデックス番号(添字)」によって識別されます。 配列の宣言配列を宣言するときの基本構文は以下のとおりです。 datatype array_name [size]; 具体的な例を見てみましょう。 float marks[50]; この宣言により、「marks」は float 型の要素を50個格納できる配列になります。

  10. C言語でポインタを使用して配列に要素を挿入するプログラムの作成方法

    問題実行時にユーザーが入力した要素を配列に挿入し、挿入後の結果を画面に表示するCプログラムを作成しましょう。ただし、指定された挿入位置が配列のサイズよりも大きい場合は、「Invalid Input(無効な入力)」と表示する必要があります。解決策配列とは、同じ種類の複数の要素を一つの名前でまとめて管理するためのデータ構造です。配列に対して実行できる主な操作は以下の通りです。挿入(Insert)削除(Delete)検索(Search)アルゴリズムポインタを使用して配列に要素を挿入する際のアルゴリズムは、以下の手順に従います。ステップ1: 要素数を宣言し、読み込みます。ステップ2: 実行時に配列のサ

  11. C言語でポインタを使って配列から要素を削除するプログラム

    問題実行時にユーザーが入力した配列から指定した要素を削除し、削除後の結果を画面に表示するCプログラムを作成します。削除対象の位置が配列の範囲外である場合は、「Invalid Input(無効な入力)」と表示する必要があります。解決策配列とは、共通の性質を持つ複数の要素を一つの名前でまとめて管理できるデータ構造です。配列に対しては、主に以下のような操作を行うことができます。挿入(Insert)削除(Delete)検索(Search)本記事では、この中でも「削除」に焦点を当て、ポインタを使った実装方法を解説します。配列から要素を削除する場合、その位置以降の要素をすべて左に1つずつずらすことで、隙間

  12. C言語でマージソートを使って配列をソートするプログラムの作成方法

    配列(アレイ)とは、共通の名前を共有する関連性のあるデータ項目の集まりです。配列内の特定の値は、「添字(インデックス番号)」によって識別されます。 配列の宣言 配列を宣言するための構文は、次のとおりです。 datatype array_name [size]; たとえば、次のように宣言します。 float marks [50]; この宣言により、「marks」はfloat型の要素を50個格納できる配列として定義されます。 int number[10]; この宣言により、「number」は整数定数を最大10個まで格納できる配列として定義されます。 配列の各要素は「配列インデックス(添字)」を使

  13. C言語のポインタを使って複数の数値から最大値を求める方法

    ポインタ(pointer)とは、別の変数のメモリアドレスを格納するための変数です。ポインタを使うとNULL値を扱うことができ、参照渡し(pass by reference)を通じて変数にアクセスできます。また、変数を宣言する際に初期化は必須ではありません。ポインタの基本構文は以下のとおりです。ポインタ変数 = &別の変数;具体例:p = &a;アルゴリズムポインタを使用して一連の数値の中から最大値を求めるためのアルゴリズムは、以下の手順に従います。Step 1: 開始 Step 2: 整数型変数を宣言する Step 3: ポインタ変数を宣言する Step 4: コンソールから3

  14. C言語の書式なし入出力関数とは?getchar・gets・putchar・putsの使い方を解説

    C言語には、printf() や scanf() のような書式指定子を使わずにデータをそのまま扱う「書式なし(アンフォーマット)入出力関数」が用意されています。これらの関数は、ユーザーが入力した単一のデータを読み取り、その値をコンソールに出力として表示するために使用されます。書式なし入力関数C言語でよく使われる書式なし入力関数には、以下の2つがあります。getchar()キーボードから1文字を読み取る関数です。構文は次のとおりです。変数名 = getchar();使用例:char a; a = getchar();getchar() を使ったサンプルプログラム以下は、getchar() 関数を

  15. ポインタを使って配列内の要素を検索するCプログラムの作り方

    問題の概要 本記事では、実行時にユーザーが入力した値を配列から検索し、その結果を画面に表示するCプログラムを紹介します。検索対象の要素が配列内に存在しない場合は、「その要素は見つかりません」というメッセージを表示します。 解決のポイント 配列とは、同じ型の複数のデータを1つの名前でまとめて扱えるデータ構造です。C言語では、配列名は式の中で先頭要素へのポインタとして扱われるため、ポインタを使った柔軟な操作が可能です。 配列に対して行える主な操作は次のとおりです。 挿入(Insert) 削除(Delete) 検索(Search) アルゴリズム ポインタを使って配列内の要素を検索する手順は以下

  16. 指定された入力式から括弧を削除するCプログラムの作成方法

    問題 数式から括弧を取り除き、簡略化された式を作成してみましょう。この記事では、入力された文字列式から括弧を除去するCプログラムを紹介します。 解法 例1 入力:括弧を含む文字列式は次の通りです。 (x+y)+(z+q) 出力は次の通りです。 x+y+z+q 例2 入力は次の通りです。 (x-y+z)-p+q 出力は次の通りです。 x-y+z-p+q アルゴリズム 指定された入力から括弧を削除するための手順は以下の通りです。 ステップ1:必要な変数を宣言し、実行時に入力を読み込みます。 ステップ2:文字列を先頭から順に走査します。 ステップ3:入力文字列の各要素を新しい文字列にコピーします。

  17. C言語で座標がどの象限に位置するかを判定するプログラム

    問題 与えられた座標(x, y)が、XY平面上のどの象限に属するのかを判定するプログラムを作成します。 プログラムの実行時にユーザーから座標を入力してもらい、その座標が第何象限にあるのかを出力します。 判定ロジック 座標の符号の組み合わせによって、象限は以下のように判定できます。 両方の数値が正の場合 … 第1象限と表示します。 入力例:2, 3 出力:第1象限 1つ目の数値が負で、2つ目の数値が正の場合 … 第2象限と表示します。 入力例:-4, 3 出力:第2象限 両方の数値が負の場合 … 第3象限と表示します。 入力例:-5, -7 出力:第3象限 1つ目の数値が正で、2

  18. 【C言語】入力した文字が大文字・小文字・数字・記号のどれかを判定するプログラム

    この記事では、キーボードから入力された1文字が英大文字、英小文字、数字、特殊文字(記号)のどれに該当するかを判定するC言語プログラムを紹介します。判定にはASCIIコード(文字コード)の値を利用します。各文字には固有の数値が割り振られているため、その範囲を調べることで文字の種類を簡単に判別できます。判定ルールと実行例入力された文字が英大文字の場合 →「大文字」と表示されます。例:入力 = H 出力:大文字(Upper Case Letter)入力された文字が英小文字の場合 →「小文字」と表示されます。例:入力 = g 出力:小文字(Lower Case Letter)入力された文字が数字の場合

  19. 【初心者向け】C言語における1次元配列と2次元配列の処理をわかりやすく解説

    まずは、C言語における1次元配列の基本的な処理方法から理解していきましょう。 1次元配列の処理 値の読み込み(格納) 1次元配列に値を格納する(読み込む)場合は、for文と組み合わせて次のように記述します。 int num[5]; int i; for(i = 0; i < 5; i++){ scanf(%d, &num[i]); } 値の書き出し(取得) 逆に、配列に格納された値を取り出して表示する(書き出す)場合は、次のように記述します。 int num[5]; int i; for(i = 0; i < 5; i++){ printf(%d, num[

  20. 【C言語入門】math.hライブラリの主要な数学関数を徹底解説!sin・cos・pow・sqrtの使い方

    C言語では、三角関数をはじめとする数学関連の関数が math.h ヘッダーファイルにまとめて定義されています。これらの関数を利用するには、プログラムの先頭で #include <math.h> と宣言する必要があります。本記事では、実務や学習で特によく使われる主要な数学関数について、構文・使用例・実行結果を交えながら詳しく解説します。 sin() ― 正弦(サイン)を求める 引数として渡した値(ラジアン)の正弦(サイン)値を計算して返します。 構文は以下の通りです。 double sin(double a); 使用例: double a = sin(3.14 / 2); 実行結果:

Total 1445 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:68/73  20-コンピューター/Page Goto:1 62 63 64 65 66 67 68 69 70 71 72 73