プログラミングC: 投稿 7 – WHILEループ, の…trong Cしばらく
以前の記事で, 我々は数回繰り返しユーティリティを使用してループで知り合いになりました. 私たちが学ぶことを続けるこの記事 2 ループの他の種類のループを使用して同様の機能を持っているが、少し異なるループがあります 同時に と の…同時に.
あなたは私たちがサインインする必要があるウェブサイトを認識しています? FacebookやGoogleのシンプルとして. 間違ったユーザー名やパスワードを記述する場合、あなたがより多くを入力する回数にもかかわらず、署名することができません. すべての間違った彼らが再び私たちをキャッチであります. もちろん、私たちはしばしばいくつかの特定の時間からのループ繰り返しを参照の予選で 1 nに,… しかしログは、唯一の新しいが真であることを何回新しい結末を知りません. それはどのようにwhileループであるので、…同時に.
1. WHILEループ
ループ構造ながら、
例 1:
それは負の数を入力し停止するまで、任意の数のプログラムを書きます.
#include <stdio.h> int main() { int x = 1; // make x >= 0 is true -> while will run while (x >= 0) { printf("Nhap vao mot so : "); scanf("%d", &x); } printf("Ok, Program is finish!\n"); return 0; }
注意: あなたの上にただ単に変数xに値を代入される宣言 1 内部コマンドを実行するために、その元のwhileループの条件付きの権利を確保するため, その後、各エントリは、その後、それが受け取ったxを何入ります. 起動するように設定されていない場合 1 それはxは受信しますことができます 1 ランダムな値とループ音が失敗することができます.
結果:
一部を入力します。 : 4
一部を入力します。 : 5
一部を入力します。 : 2
一部を入力します。 : 0
一部を入力します。 : 1
一部を入力します。 : -3
OK, プログラムが終了です!
例 2:
数字を印刷 9 ペインティング 0 下行. 番号が上に配置されています 1 現在.
通常は、ループを思うだろう. [OK]を標準. しかし、ここで私はあなたがよくやっしばらくの使い方を知りたいです.
#include <stdio.h> int main() { int n = 10; while (n--) { printf("%d ", n); } printf("\n"); return 0; }
シンプル. しかし、上記のコードでは、whileループ内の条件のビットをどのようにされていることに注意?
それは他のnです 0 か否か. 書くとき while (n--)
すなわち、他のnをチェックします 0 あるいはまたは右Nとして理解することができません (右です 0) 印刷ジョブ番号n. まだ動作 n--
その後、ちょうどn個を引きます 1 単独のユニット. そして、その結果で重要な注意点:
9 8 7 6 5 4 3 2 1 0
何故 0 まだ印刷にある間、分析中、場合N = 0 つまり、条件が偽であります, 間違って、彼らはむしろ、エスケープする必要があります? それは表現によるものです n--
私達の. ときのn = 1 その後 n--
意志のn値 0. しかし、背中を除い式でnはそれは検査命令の後になるn = 0. すなわち場合はn = 1 表現 while(n--)
まだ正しいし、新しいn個をドロップ 0 ジョブを実行します, その時に印刷された数字を印刷します 0.
2. ループ…同時に
ループ構造…同時に
例 1
自分のFacebookのパスワードの前に保存します. ログインするためのパスワードを入力するようにプログラムを書きます.
#include <stdio.h> #include <string.h> // for strcmp function int main() { char p[20] = "Iloveyou"; // pass saved char pass[20]; // pass must enter do { printf("Enter your password: "); gets(pass); } while ( strcmp(p, pass) != 0); printf("Ok. You are login success!\n"); return 0; }
結果:
パスワードを入力してください: オフィス
パスワードを入力してください: nguyenvanquan
パスワードを入力してください: ILOVEYOU
パスワードを入力してください: ILOVEYOU
OK. あなたは成功をログインしています!
注意: 上記のコードで, 私は、関数を使用しています 比較することのstrcmp 2 チェーン, この関数は、ライブラリ内に位置しています string.hの
関数strcmpは、文字列と文字列のPパスを比較した結果を与えます:
- 1 pはパスよりも大きい場合
- 0 もしP同じパス
- -1 pはパス未満の場合
だから我々は条件を持っています strcmp(p, pass) != 0
すなわち 2 このシーケンスは同一ではありません.
詳細な比較 2 チェーン, すべてであなたの参照 比較します 2 Cの文字列 – strcmpの
3. 比較します, ループを使用して, 同時に, の…同時に
- ループは、一般的に決定された反復回数を知るために使用されます.
- 通常、whileループ, の…反復の未知数を使用しながら、
- whileループを呼び出すとき, の…同時に, 条件が偽の場合, ループは一度実行されませんが、しかしループ…実現しばらく 1 時間.
エクササイズ
- 繰り返し文字の作業を入力するプログラムを作成し、その文字のASCIIコードを印刷, とき入力するには 0 その後、停止. ( 参照する ASCIIエンコーディング )
- 文字を出力するプログラムを作成: “あなたは私を愛していないでください?”, そして、ユーザーは、cを入力します (持っている) またはK (しない). Cを入力すると、プログラムを停止, 彼ら自身が再投入Kの入力を始めた場合でも^^. (ガールフレンド/ボーイフレンドを送信)
- 入力する 1 数, 素因数のどの成果の分析.
- USCLNを見つけるためのプログラムを書きます, のBSCNN 2 数.
白ループで例えば 1 Xをintにキッズ; プログラムがまだ実行されています, しかし、なぜxの記録を注釈しなければなりません>= 0 ハァッ
変数宣言int型のxため、, xの値は、事前に知ることができません, 多分 1 私たちが制御することはできません乱数.
#含まれる
メインint型 ()
{
int型のx = 1;
printfの(“あなたは私を愛しています ?\N”);
printfの(“1: 何 nは”);
printfの(“2: nは”);
同時に(X != 1);
{
printfの(“答え: “);
scanf関数(“%D”, &X);
}
printfの(“あなたを愛してます”);
リターン 0;
}
誰私はチェック助け … うちk個以下の演習 :3
最初は、あなたは、x =を割り当てます 1 しばらくの後、条件(X!= 1) 間違っています, ループしながら行われるべきではありません. あなたは、初期値xを割り当てる必要があります 1 他人 1.
他の人によって割り当てられキッズ 1 それは実行ループがなぜ権利であるkは@@
あなたはの#include見よを送りました. あなたはどのようなライブラリーのインサートプログラムの実行を得ることはありません. int型への背中を持つX = 0 または何か他の 1 新しい条件に厳密に大丈夫ながら、.
サウ中とCo ;
ブラザーはあなたに挨拶プリントを印刷したい依頼します 100 どのようにA無視してやあ、コマンドを使用します。
ああ、すべてのソリューションのMNは、どのような先生調理します:>
推奨されます: 与える 2 整数A,B赤ちゃんと大きなを検索(k個の演算条件 ?: そして、IF関数 )
#含まれる
メインint型()
{
int型、A = 0;
の {
printfの(” あなたは私を愛しています?:Dの nを”);
printfの(“1: 何 nは”);
printfの(“2: nは”);
printfの(“LOIの nとの間”);
scanf関数(“%D”,&ザ·);
}
同時に (ザ·!= 1);
{
printfの(“私はあなたを愛し=))”);
}
リターン 0;
}
私はこれがなかったんでした
あなた面白いthiet..cho 2 選択したngtaのためにそのK d.a。.
#含まれる
メインint型 ()
{
int型のx;
printfの(“子供たちは私を愛して nは”);
printfの(“1: 何 nは”);
printfの(“2: nは”);
同時に(X!= 1)
{
printfの(“答え: “);
scanf関数(“%D”, &X);
}
もし(X == 1)
printfの(“あなたを愛してます”);
F(X == 2)
//printfの(“私はベルベットmを愛します”);
リターン 0;
}
私は、whileループを使用します…これは、先生が解決されていません
推奨されます: 文字列を入力して、唯一に各単語の間に余分なスペースを削除 1 スペース
#含まれる
#含まれる
#含まれる
メイン()
{ int型の私;
文字S[10],*P;
printfの(“\n個の文字列をクリックします。 “);fflushは(標準入力);
取得します(S);
同時に(で< strlen関数(S));
{
I = I ++;
もし(S[で]==' '&&S[のi 1]==' ')
{strcpyの(&S[で],&S[のi 1]);
I = I–;}
}
プット(S);
}
#含まれる
メイン()
{
文字X;
printfの(“あなたはk個の nを愛しています”);
printfの(“ n個の有無にかかわらず”);
同時に(X!=」C」)
{
printfの(“IディTL :”);
scanf関数(“%℃”,&X);
}
printfの(“わたしは、あなたを愛しています”);
リターン 0;
}
問題:EのKまたは任意の他の文字cを入力するとき、あなたは、TLを行くラインをプリントアウト 2 東亜!!!
あなたはフロートコマンドを参照してくださいNHE.
#含まれる
#含まれる
メインint型()
{
printfの(“イングランドあなたは私を愛して?\N”);
printfの(“1. 何 nは”);
printfの(“2. Khongの nは”);
char型のP[20] = “共同”;
char型のパス[20];
の
{
printfの(” LOI間のアン: “);
取得します(パス);
} 同時に ( strcmpの(P, パス) != 0);
printfの(“OK. 私はあなたが nを愛します”);
リターン 0;
}
みんなにお問い合わせください. 複数の条件を使用したループ 2 または多変量先生?
これは治療次第です, tùy công việc cần làm thôi.
{
int型のn;
scanf関数(“%D”, &N);
printfの(“%D = 1 * “,N);
のために(int型のi = 2;で<= N;私 ){
同時に(n%i == 0){
printfの("%d * ", で);
n /= i;
}
}
リターン 0;
}
あなたの訪問 https://code.cachhoc.net NHE提出します.
/*viet chuong trinh nhap vao mot ky tu va in ra ma ascii cua ky tu do*/
#含まれる
#含まれる
#含まれる
メインint型()
{
char型のC;
同時に(℃!=’0′)
{
c = getch();
printfの(” ma ascii cua %c la: %d \n”, ℃, ℃);
}
}
hi vọng ngoài cách dùng c = getch(); như bài của em thì mong ae đóng góp cho em thêm những các khác vì dạng này khi kết hợp với while mà dùng getchar thì em thấy là nó đọc luôn cả enter xuống dòng
Dùng scanf được nhé 🙂 Bạn có thể vào trang https://chamcode.net để làm thêm nhiều bài tập hơn 🙂
cho e hỏi bài tin lớp 8 先生とのパスカルについて!
前の回の未知の数と反復文を使用, 仕上げに入る整数にプログラムを書くために 0. 計算し、印刷サマリー画面を先ほど入力した整数
おかげで多くの先生
あなたはNHEまでリピート購入を使用します.
eは、プログラムが2つのだけの整数を入力できますし、その総輸入どのようなタイプのAKことを尋ねました?
あなたはそれを、この記事を参照してください: https://cachhoc.net/2018/01/11/lap-trinh-c-bai-3-nhap-xuat-trong-c/#Vi_du_1-2
私はすべてを聞いてみましょう 3 どの先生指向のソリューション ?
ここしばらく参照してください。. https://cachhoc.net/2017/05/31/phan-tich-thua-nguyen/
私がのポストを行うように指示を求め 4 彼はどのようにやりました ?
そして、この式, あなたが行うことができます.
投稿 4 私はあなたが最大公約数kを見つける私の先生を助けて見ます :((((
#含まれる
メインint型() {
int型A[20] , B [20] , N , M , I = 1 , J = 1 ,D;
printfの(“nhap n個 : “);
scanf関数(“%D”,&N);
printfの(“nhapメートル : “);
scanf関数(“%D”,&M);
printfの(“N・ラ・コンベンション : “);
同時に(で <= N / 2) {
もし(N % 私== 0) {
printfの("%d ",で);
ザ·[J] = I ;
J ;
}
私 ;
}
printfの("\nuoc cua m la : ");
I = 1;
J = 1;
同時に(で <= M / 2) {
もし(M % 私== 0) {
もし(M % 私== 0) {
printfの("%d ",で);
B[J] = I;
J ;
}
}
私 ;
}
のために(I = 1;で <= 20;私 ) {
のために(J = 1;J <= 20;J ) {
もし(ザ·[で] == B[J]){
D = I;
}
}
}
printfの("\n %d la ucln",ザ·[D]);
リターン 0;
}
あなたは、ウェブサイトに行くことができます https://chamcode.net 実行します (投稿 33) 常に正しい間違ったシステムを置くために, また、その調整コードに基づいて.
彼は私に尋ねました,二つの条件をチェックするためのコマンド . 最高経営責任者(CEO): 0<N<= 10
ああ感謝.
0 < n && n <=10 nhé.
#含まれる
#含まれる
名前空間stdを使用して;
メインint型()
{
int型のn;
の
{
COUT<>N;
もし (n20)
{
COUT<<"\n Gia tri n khong hop le, 再入力してください!";
}
}同時に (n20);
リターン 0;
}
実行時間が条件と一致しないのはなぜですか
dowhileループを使用して入力データを確認する方法を教えてください. たとえば、正の値を入力します. もし<= 0は、満たされるまで再入力が必要です
の {
scanf関数
}同時に(ザ· <= 0)
条件付きの正の整数kを入力するためにC ++を書くようにお願いします 0 < へ <= 20 whileループ構造で、どうですか (C )
P / s: C ++、男
同時に(へ < = 0 || k > 20) cin >> k.