编程C本 : 帖子 6 – 循环用C
1. 例如,开口
打印出你的名字那么简单不. 一个非常简单的程序编写.
#include <stdio.h> int main() { printf("Nguyen Van Quan\n"); return 0; }
行. 所以,现在我要你打印出来 10 次你的名字?
#include <stdio.h> int main() { printf("Nguyen Van Quan\n"); printf("Nguyen Van Quan\n"); printf("Nguyen Van Quan\n"); printf("Nguyen Van Quan\n"); printf("Nguyen Van Quan\n"); printf("Nguyen Van Quan\n"); printf("Nguyen Van Quan\n"); printf("Nguyen Van Quan\n"); printf("Nguyen Van Quan\n"); printf("Nguyen Van Quan\n"); return 0; }
很简单, 刚才复制的 10 printf的行结束. 但是,如果不 10, 就是说 1000 以上? 显然复制并不可行.
其实, 该软件将工作要重复多次,在上面的例子. 或者像你的软件打印的员工列表, 每一位员工的信息 (内容) 不同,但结构非常相似. 或者干脆说你在浏览Facebook和看到的故事,从你的朋友, 这个消息是不是在内容相同,但结构很相似.
为了实现这个目标需要重复这样的任务, 我们将使用循环结构,其中包括 为, 而, 这样做,而. 这节课我们将学习有关环路 为.
我们将修改示例 10 一旦你命名如下:
#include <stdio.h> int main() { int i; for (i = 1; i <= 10; i++) { printf("Nguyen Van Quan\n"); } return 0; }
如上面的代码, 我用 环 做的工作在他的名字 10 时间, 同 1000 简单的时候,我还更换了一些 10 一些 1000 (你可以试试). 看着你的代码也可以想像我们做的基本的东西.
2. 循环结构
看上面的图片我们可以看到环有语法以及它的工作原理是很清楚的,易于理解. 但是你要注意:
- 对于没有分号的命令后.
- 3 循环的表达用分号隔开 (;), 表达式可能缺席 1,2 或者两者 3 但这必须提高分号.
- 表达式 1 总是在拨打的计算只有一次.
- 表达式 2, 3 并为可能的亲戚反复.
- 表达式 1, 2, 3 必须用分号分隔 ( ; ), 表达式可能缺席 1,2 或者两者 3 但这必须提高分号.
- 如果表达 2 没有, 循环被认为是总是正确. 想逃离循环,以休息, 转到乙酸回报.
- 对于每一个表达式可以写成一系列人类表情的由逗号分隔. 那么孩子判定表达式从左至右. 由于对与错,在第一序列表达的表达 2 由最终表达式确定.
- 在体内 (块命令) 可含有一个或多个其它控制结构, 另一个循环.
- 有一个break语句时,, 最深的循环结构将退出.
- 在体内存在对thedung转到退出循环到所需位置.
- 在体内可用于return返回一个特定功能.
- 在体内可用于命令继续移动到循环的顶部 (跳过在体内的其余的语句).
返回的代码示例:
#include <stdio.h> int main() { int i; for (i = 1; i <= 10; i++) { printf("Nguyen Van Quan\n"); } return 0; }
其工作过程如下:
- 步 1: 运行表达式 1 即分配I = 1.
- 步 2: 运行表达式 2 即检查我 <= 10 不. 我是否= 1 应此右=>被印刷运行命令块名.
- 步 3: 运行表达式 3 即我的增幅高达 1 单元. 现在我= 2.
- 步 4: 返回表达 2. 检查我 < 10 不. 我是否= 2 应该还是正确=>运行命令块, 即在名.
- 步 5: 运行表达式 3 即增加了我 1. 现在我= 3.
- 步 6. 回到表达式2,…
- 步….
- 步骤x: 运行表达式 3, 我增加了 1. 现在我= 10.
- 步骤x + 1: 返回表达 2 即检查我 <= 10. 保持为真=>运行命令块打印名.
- 步骤x + 2: 运行表达式 3, 我增加了 1. 现在我= 11.
- 步骤x + 3: 返回表达 2, 检查我 <= 10. 现在,它错了,因为我是 11 =>退出循环. 接着执行对等命令循环 (return语句 0 下方).
行. 现在你有循环的基本认识. 继续做几个例子.
例 1:
编写一个程序,打印出 15 次你的名字, 用下面的顺序一起:
- 阮文权
- 阮文权
- 阮文权
- ….
哼… 如何获得数量上升? 你可以看一下运行的for循环的步骤的过程? 我们有 1 我打开上升… 因此,我们将利用它.
#include <stdio.h> int main() { int i; for (i = 1; i <= 10; i++) { printf("%d.Nguyen Van Quan\n", i); } return 0; }
例 2:
请甚至从打印出来的正数 1 到 20 顶 1 当前, 用空格分隔.
只是我从运行 1 到 20 我们将检查印刷数为偶数,. 要检查奇偶, 我们回顾了分工余额. 如果我把 2 残留 0 应均匀.
#include <stdio.h> int main() { int i; for (i = 1; i <= 20; i++) { if( i % 2 == 0) { printf("%d ", i); } } return 0; }
行. 但我想你低头代码提示之前想多一点. 我们怎么能不使用测试,如果连号码,还是做这个职位?
记住的为不固定的表达, 我们可以改变它. 而改变的方式增加我的. 我们给予我开始 2 和每次增加,上升 2 单元.
#include <stdio.h> int main() { int i; for (i = 2; i <= 20; i = i + 2) { printf("%d ", i); } return 0; }
此代码显然比当时更好的代码. 上面我们增加了我 2 命令单元 I = I + 2.
这是一个任务,我 + 2 对于我, 比不上我和我的命令 + 2.
例 3:
总结甚至整 1 到 20.
#include <stdio.h> int main() { int i; int s = 0; for (i = 2; i <= 20; i = i + 2) { s = s + i; } printf("S = %d\n", s); return 0; }
在上面的代码通知, 我们声明 1 变量s (站在总和) 节省总. 每次我增加,我们计入指挥 S =小号 + 在.
例 4:
从奇数的总和 1 到 20 但直到总数超过 15 然后停止.
在这里,我们总结了奇数, 如只对偶数, 然而,当总的大于 15 然后我们将停止, 再加上没有更多的.
#include <stdio.h> int main() { int i; int s = 0; for (i = 1; i <= 20; i = i + 2) { if(s <= 15) { s = s + i; } } printf("S = %d\n", s); return 0; }
只需选中时仍然小于或等于少 15 然后我们增加. 我们将有S = 1 + 3 + 5 + 7 = 16.
但是,如果你发现, 当s> 15, 我们不加入到循环的,但仍在运行,直到我> 20. 这将运行到迭代i = 9, 11, 13, 15, 17, 19. 因此,造成浪费, 多余的,使程序运行的时间更长. 因此,我们应该在命令完成的时间打破循环当i = 7. 要做到这一点,可以使用 休息, 或 转到, 但你应该使用破推荐的简单性和安全性.
#include <stdio.h> int main() { int i; int s = 0; for (i = 1; i <= 20; i = i + 2) { if(s <= 15) { s = s + i; } else { break; } } printf("S = %d\n", s); return 0; }
例 5
输入整数n, 甚至数之和进入.
#include <stdio.h> int main() { int i, n, x; int s = 0; printf("Enter n = "); scanf("%d", &n); for (i = 1; i <= n; i++) { printf("Enter number %d : ", i); scanf("%d", &x); if(x % 2 != 0) continue; s = s + x; } printf("S = %d\n", s); return 0; }
在本实施例, 我教你如何使用命令 继续. 该命令不逃避资本效果回路,但久违的表达 3 没有它背后的订单. 在这里,如果x甚至没有进入命令跳过它运行,以增加我的权利增量指令S.
锻炼:
- 编写一个程序,打印出的数量n和数n估计,.
- 写测试程序 1 有素数不? 质数仅仅是一个正整数 2 公约 1 和本身. 实例号 2, 3, 5, …
- 写测试程序 1 有完美的数量不? 完全数是正整数等于所估计的总和 2 有时它. 示例 6 公约 1, 2, 3, 6 总 1 + 2 + 3 + 6 = 12 (平等 2 时间 6).
- 写一个程序来计算S = 1 + 1/2 + 1/3 + … + 1/ñ
- 编写计算从奇数的平方的程序 1 到n.
- 编写一个程序,计算出n! 知道N.! = 1.2.3.4…ñ
- 写计数第n个斐波那契序列已知序列F A计划(ñ) = F(N-1) + ˚F(N-2), N> 2 和f(1) = 1, ˚F(2) = 1.
- 写长的程序, 该矩形的宽度. 绘制一个矩形,星号 (*) 大小进入.
我可以张贴我的代码错了你来帮我指出我的错误KO?
如果有什么需要沟通, 您通过fb.com/nguyenvanquan7826与我联系, 这在他的博客最近检查将放缓,因为并不总是.
{
INT I, 行;
scanf函数(“%ð”, &在);
//的printf(“%ð”, 1%2);
如果(我== 1)
的printf(“%d LA所以阮到 n”, 在);
其他{
为(INT X = 2; X<在;X ++){
如果(我%×== 0){
的printf("So %d khong la so nguyen to\n",在);
休息;
}
OK = 1;
}
如果(OK == 1)
的printf("So %d la so nguyen to\n",在);
}
回报 0;
}
您访问 https://code.cachhoc.net 提交NHE.
服务员, 您给他们的练习类型是否与每种类型相同?, 为什么我觉得这么难?, 由于我是新人,所以我知道的不多
一样的. 来吧. 您可以在此处查看更多信息: https://chamcode.net/
#包括
INT主要()
{
INTñ,在;
的printf(“输入so:\ñ”);
scanf函数(“%ð”,&ñ);
为(I = 1;在<ñ;我 )
如果(N%我== 0){
的printf("Uoc so cua n la:%d\n",在);
}
回报 0;
}
#包括
INT主要()
{
INTñ,在;
的printf(“进入 1 苏阮:\吨”);
scanf函数(“%ð”,&ñ);
的printf(“\n==========n”);
如果(n==1)
的printf(“%d la so nguyen to”,ñ);
否则,如果(n==2)
的printf(“%d la so nguyen to”,ñ);
其他{
为(I = 2;在<ñ;我 )
如果(N%我== 0){
的printf("%d khong phai la so nguyen to\n",ñ);
休息;}
否则,如果(你!= 0){
的printf("%d la so nguyen to\n",ñ);
休息;}
}
回报 0;
}
完美数字程序
INT主要()
{
一个INT;
的int = 1;
的printf(“哈哈: “);
scanf函数(“%ð”,&该);
为 (INT I = 2;在<=一;我 ){
如果(!(%i)){
的printf ("%d la uoc \n",在);
小号=小号+我;}
如果 (s==a+a){休息;}}
的printf("%d la so hoan hao",该);
回报 0;
}
你可以进来 https://chamcode.net 提交NHE.
亲爱的, i++ 部分是什么?, 我还是不太明白那部分
i++ 是增加 i 1 单元.
(!(%i))
我不明白~现在对我来说
如果除法我得到另一个余数 0 NHE.
嘿在vd 4 他说当总和更大时 15 然后停止它出现的原因 16 所以 . 应该掉号 7 我们走吧
如果(X % 2 != 0) 继续; 让我问 ! 这里是什么意思? ?
如果 x 可以被整除 2 然后不要执行以下命令,但下次返回运行循环.
你好. 我要当我检查 1 素数完成后,我给出 Contnue 行:Y/N 我选择 Y 继续,然后我必须结束 我该如何进入。你能帮我解决那部分吗?
你加 1 输入为普通字符输入, 他们进入后, 将该角色与 Y 和 N 进行比较.