C言語の仕事

まず、図のマインド

第二に、文法の以下の理解を書きます

- 他の1.if:形で実質的にcase文:

if(表达式){

语句a;

}else{

语句b;

}

これは、ネストされたステートメントとして形成することができる。もしそうでなければ、if文;少ない分岐との適切な条件で。私は明らかに教科書や教師ウェン甲斐のビデオを見て突破を、条件を区別していない状況に遭遇しました。この構文を使用する場合、良好な習慣として、中括弧{}を省略しません。不要なエラーを回避します。

2.switch:基本的な枠組み:



switch(表达式){

case 常量表达式1:语句a;break;

case 常量表达式2:语句b;break;

...

case 常量表达式n:语句n;break;

default:语句n+1;break;

}

切り替え-case文は、より多くの状況分岐条件に適用可能であり、ループから抜け出す必要が。スイッチ文の値式と定数式は、一般的に整数または文字です。式の中の定数は等しくすることができない、デフォルトの文は省略することができます。

3.for:この文の基本的な構造は次のとおりです。


for(表达式a;表达式b;表达式c;){

循环体语句;

}

forループに入るときに、最初の文、ループ初期設定ステートメントのためとして知られている、実行ループのためにだけ入り、次に文Bを実行すると、ステートメントが1回だけ実行され満足文Bの場合は、ループが、実行することができますB文は、ループ制御文と呼ばれ、文のループ端をcを実行したときの一般的なステートメントは、iは、I ++を共通として制御ループ変数を調整するために使用されたCその後、ループのためのループ全体を実行しています - 、次いで、サイクルの終わりを上記の手順を繰り返し、そうでない場合にそうであれば、上記の文Bを実行して1サイクル、及び、ループ状態か否かを判定する。

4.whileは:文の円があり、簡単な広く適用可能となります。その一般的な形式:


while(表达式){

循环体语句;

}

式がtrueの場合、実行サイクルに評価された場合。ステートメントとDO-while文が混同されている間、私は通常、私が通じ、高齢者を求めるだろうと私はループが、その違い出本当の数字ことを保証するために、通常、1つのプログラムが同時にながら一度使用している間行う-取得することを知っています。

5.do-中:一般的な形式である無限の声明:


do{

循环语句;

​    }while(表达式);

やる-ながら式はループ終了内の虚偽の陳述になるまで、文はループを実行します。やる-しつつ、第1の時間に適したループ文は、状況がサイクル条件後に決定されます。

6.breakして続行:breakステートメント強制循環終了し、声明文を続ける中で次のループをスキップし続けるには、次のサイクルを継続します。主な違いは、サイクルの終わりを破る文が戻ってループし続けるスキップし続ける、ということです。ブレークは、switch文のために使用することができます。

三、PTAスコアのスクリーンショット



四、PTAの主題分析

  1. 題名:4.1:7-2精度要件簡単なインターリーブ配列部分与えられ、

絶対値が精度EPS所与の最後よりも大きくないまで1/10 + ... - 1/4 + 1/7 - この問題は、プログラミング、計算配列部分を必要とします。

入力フォーマット:

これは、行の正の実数入力EPSを与えます。

出力フォーマット:

行の「和= S」形式、6桁に応じた値Sの出力部と。タイトルは、計算結果が倍精度を超えていないことを確認してください。

サンプル入力1:

4E-2

出力サンプル1:

sum = 0.854457

サンプル入力2:

0.02

出力サンプル2:

sum = 0.826310

回答:


#include <stdio.h>
#include <math.h>//代码中使用了数学函数,添加头文件
int main() {
    int i, flag;
    double sum, num, eps;//定义正确的浮点数变量
    sum = 0;
    flag = 1;
    i = 1;
    scanf("%lf", &eps);//输入eps的值,确定精度
    do {
        num = flag * 1.0 / (3 * i - 2);//do做第一次循环求出正确的num
        sum += num;
        i++;
        flag = -flag;//实现正负交错
    } while (fabs(num) > eps);
    printf("sum = %.6lf", sum);//实现保留小数点后六位
    return 0;
}

コードのアイデア:プログラム上のマーク!

要約:これは非常にモンゴルサークルを始める質問で、最後の1の絶対値を達成する方法がわからない、後に学んだ工場の機能は、ネットワークからの絶対値を表明することにある、与えられた精度のEPS以下です。しかし、その後、私は指導を得ることを期待して、ステートメントが失敗したときにこの問題はwhile文に適合していないされていないかどうかを知りたいと思い、DO-while文を変更しようとしました。

2.トピック:7-10:生徒の成績の統計

この質問は、学生のNパーセンタイル得点、5点のパフォーマンスの統計的分布を読み込み、プログラムの作成が必要です。5点変換規則の結果にパーセンタイル得点。

  • 以上分割さ90に等しいです。
  • 90未満、より大きく又はB 80に等しいです。
  • 80および70未満であるC以上。
  • 70未満、より大きく又は60 Dに等しいです。
  • 60は、E未満であります

入力フォーマット:

Nパーセンタイルの第2行に与えられた隙間によって分離され、学生をスコア;最初の行では、入力は、すなわち、学生の数は、正の整数N(≤1000)が与えられます。

出力フォーマット:

出力A、B、C、D、数字の間のスペースで区切られた行の5点の分布の結果に対応するEの数は、行の末尾には、余分なスペースを持つことができません。

サンプル入力:

7
77 54 92 73 60 65 69

出力例:

1 0 2 3 1

回答:


#include<stdio.h>
int main()
{
    int N, x;
    int A = 0, B = 0, C = 0, D = 0, E = 0;
    scanf("%d", &N);
    //以下使用for循环来统计
    for (int i = 1;i <= N;i++) {
        scanf("%d", &x);
        //以下用if else-if的级联语句来统计各等级的人生
        if (x >= 90) { A++; }
        else if (x >= 80 && x < 90) { B++; }
        else if (x >= 70 && x < 80) { C++; }
        else if (x >= 60 && x < 70) { D++; }
        else { E++; }
    }
    printf("%d %d %d %d %d\n", A, B, C, D, E);
    return 0;
}

コードのアイデア:プログラム上のマーク!

誘導:この質問は簡単ですが、いくつかの不要なカスケードを排除することの両方&&を使用して、サブカテゴリーの多くを必要とします。

3.タイトル:7-4:統計文字

この質問は、10個の文字を入力して、それらの文字、スペース、キャリッジリターン、数字、およびその他の文字の数をカウントし、プログラミングを必要とします。

入力フォーマット:

10個の文字を入力します。最後に、キャリッジ・リターンは、入力端を表す含まれていません。

出力フォーマット:

1行によると、

letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数

出力形式。

サンプル入力:

aZ &
09 Az

出力例:

letter = 4, blank = 3, digit = 2, other = 1

回答:


#include <stdio.h>
#include <stdlib.h>
int main() {
    char s;
    int letter = 0, blank = 0, digit = 0, other = 0;
    //以上为正确定义变量,以下使用for循环统计
    for (int i = 0;i <= 9;i++) {
        s = getchar();
        if (s >= 'A' && s <= 'Z') {
            letter++;
        }
        else if (s >= 'a' && s <= 'z') {
            letter++;
        }//当遇上a-z以及A-Z时,单词数加一
        else if (s >= '0' && s <= '9') {
            digit++;
        }//当遇上数字0-9时,数字数加一
        else if (s == ' ' || s == '\n') {
            blank++;
        }//当遇上Tab键和空格键时,空格数加一
        else {
            other++;
        }//当遇上其他字符时,其他字符数加一
    }
    printf("letter = %d, blank = %d, digit = %d, other = %d", letter, blank, digit, other);
    return 0;
}

コードのアイデア:プログラム上のマーク!

誘導:この質問私は質問のクラスを理解することは非常に困難であった、と私は私の心に主題のこのタイプに直面が真っ白になったとき、起動する方法がわからない、私は学生を要求され、高齢者、本を読むには、長い時間を経て長期戦、最終的には理解しますが、まだ少し混乱。私は、Tabキーでもスペースの数を数え、そして表される各文字の意味を明確にするため、この問題を通じて学びました。

おすすめ

転載: www.cnblogs.com/hcy420/p/11669013.html