まず、図のマインド
第二に、構文を理解します
(1)のif-else
1.構造
if (条件)
语句一;
else
语句二;
2.使用法:条件が真の場合の式を解く、出力文は、文は偽出力2であります
3.質問:エラーが属している場合、時にはそれ以外の判断複数のif-else文を含みます
4.解決策:説明し、構造の独自の分析で再見て先生に聞いて
(2)スイッチ
1.構造
switch (表达式){
case 常量表达式1:语句段1; break;
case 常量表达式2:语句段2;break;
...
case 常量表达式n:语句段n; break;
default: 语句段n+1;break;
}
2.方法:式の値が定数式に等しい場合、式を評価し、対応する測定の発現は、任意のデフォルトに等しくない場合、段落文、セグメントの後の文を実行実行され、最終的にスイッチのうち実行ブレーク
3.質問:いいえ
4.ソリューション:いいえ
(3)のために
1.構造
for(表达式1;表达式2;表达式3)
循环体语句
2.方法であって、第1の計算式1、式2は、値がtrueの場合、文は、最初のループを実行し、値がfalseの場合、ループを終了する場合、次に、式3を評価し、決定します
3.質問:式23の順時々混乱、実行されたときに、私は時々混乱値又はサイクルでループの値であり、++
4.解像度:ラフ紙にブロック図に示されています
(4)一方
1.構造
while(表达式)
循环体语句;
2.使用方法:式がfalseに評価されるまで、真の式の値が、ループが実行されると、ループが終了し、実行次のwhile文
3.質問:ループ本体が唯一の文です気付きませんでした
4.ソリューション:単一の文を変更
(5)DO-ながら、
1.構造
do{
循环体语句
} while (表达式);
2.方法:値が真である場合、値が偽になるまで、最初のループに、第1のループ実行文、および制御周期の状態をチェック、即ち、計算式、サイクルは次のステートメントを実行する、継続します
3.質問:条件がエラーで継続するかどうかを判断します
4.ソリューション:もっと練習
(6)break文とcontinue文
1.構造
switch (表达式){
case 常量表达式1:语句段1; break;
case 常量表达式2:语句段2;break;
...
case 常量表达式n:语句段n; break;
default: 语句段n+1;break;
}
for(表达式1;表达式2;表达式3)
{
语句1;
continue;
语句2;
}
2.方法:ループ条件ループ構造の複数が共同でループ文とbreak文の表現によって制御されるように表示されたときに壊れます
スキップし続け、次のサイクルで次のループ文を続行し続けます
3.質問:いいえ
4.ソリューション:いいえ
三、PTAスコアのスクリーンショット
2.3、2.4ジョブ
第3章仕事
4.1求人
四、PTAコード解析
2.3、2.4ジョブ
7-2奇数列及びN項目を求めて前(15分)
この問題は、プログラミングを必要とシーケンス1 + 1/3 + 1/5 +を計算し...と、最初のN.
入力フォーマット:
指定された入力行の正の整数でN.
出力フォーマット:
行の「和= S」形式、6桁に応じた値Sの出力部と。タイトルは、計算結果が倍精度を超えていないことを確認してください。
サンプル入力:
23
出力例:
sum = 2.549541
#include<stdio.h>
int main()
{
int n,i,zi=1,mu=1;
double sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum+=zi*1.0/mu;
mu+=2;
}
printf("sum = %lf\n",sum);
}
思考:入力文字得られた画分と1.0の比率、そして蓄積
原因:欠陥のある最後の解答形式、必要なタイトル精度に注意を払います
精度与えられた答えは、間のすべての法律を注意し、1.0を乗算することを忘れないことに注意してください:収穫
第3章仕事
7-10生徒の成績の統計(15ポイント)
この質問は、学生の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;
int i,x;
int a=0,b=0,c=0,d=0,e=0;
while(scanf("%d",&N)!=EOF){
for(i=0;i<N;i++){
scanf("%d",&x);
if(x>=90){
a++;
}else if(x>=80){
b++;
}else if(x>=70){
c++;
}else if(x>=60){
d++;
}else{
e++;,
}
}
printf("%d %d %d %d %d\n",a,b,c,d,e);
}
return 0;
}
思考:入力文字の後、異なる画分は、出力レベルがセグメントを分離した場合、他の複数のサイクルによって、
エラー:5つの段階、最後の5つの結果が持っています
収穫:すべての出力結果ということに注意してください。
4.1求人
7-8推測ゲーム(15ポイント)
ゲームを推測すると、ランダムに100内で発生する正の整数を作ることです、ユーザーが推測それらの番号を入力し、あなたは自動的に番号がランダムに生成される推測するためにそれらを比較するためのプログラムを書く必要がある、と大きな促し(「大きすぎます「)、または小さな(」少なすぎる「)、同じ表現が推測しました。あなたが推測した場合、プログラムは終了します。また、必要とする統計的推測の数、あなたが「ビンゴ!」ことを示唆している番号1を、推測する場合は、推測未満3倍の数の場合は、プロンプト「ラッキー・ユー!」;しかし、もしN以上3倍(> 3) (N番目を含む)より少ない回数は数、プロンプトの推測「グッド推測を!」;、プロンプト「ゲームオーバー」推測し、N回以上なければ、プログラムは終了します。N回に達する前にした場合、ユーザーは、負の数を入力し、出力「ゲームオーバー」、およびプログラムが終了します。
入力フォーマット:
100を超えていない2つの正の整数で、乱数をゲーム機によって生成され、最初の行の推測入力の最大数はN与えられています 最後に、与えられたユーザ入力の各行は、負の数が表示されるまで。
出力フォーマット:
出力の推測や「ゲームオーバー」の結果までの結果を、対応する行の各推測の出力が終了されます。
サンプル入力:
58 4
70
50
56
58
60
-2
出力例:
Too big
Too small
Too small
Good Guess!
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int num, times;
scanf("%d %d", &num, ×);
int i = 0, guess;
while (i < times) {
scanf("%d", &guess);
if (guess < 0) {
printf("Game Over\n");
break;
}
if (guess > num) {
printf("Too big\n");
}
if (guess < num) {
printf("Too small\n");
}
if (guess == num) {
if (i == 0) {
printf("Bingo!\n");
} else if (i < 3) {
printf("Lucky You!\n");
}
if (i >= 3) {
printf("Good Guess!\n");
}
break;
}
i++;
}
if (i >= times) {
printf("Game Over\n");
}
return EXIT_SUCCESS;
}
アイデア:複数の使用は、出力の推測とNUMの大きさを比較する場合、else文
原因:もし、他の異なる組み合わせの混乱
収穫は:グループの場合は、最寄りで他に注意してください