活动介绍
file-type

C语言中的计数控制循环——for语句解析

PDF文件

下载需积分: 0 | 1.34MB | 更新于2024-07-01 | 44 浏览量 | 0 下载量 举报 收藏
download 立即下载
"本章主要介绍了C语言中的循环控制,特别是计数控制的循环——for语句。通过一个具体的例子展示了如何使用for语句来执行特定任务,如计算多个数值的和。" 在编程中,循环结构是非常重要的,它允许程序重复执行一段代码,直到满足特定条件为止。在C语言中,有三种主要的循环控制方式:标记控制的循环(如while和do-while),计数控制的循环(for语句),以及条件控制的循环(如switch语句)。本章节重点讨论了计数控制的循环,特别是for语句。 for语句是一种非常灵活且常用的循环控制结构,适用于已知循环次数的情况。它的基本语法结构如下: ```c for(表达式1; 表达式2; 表达式3) { 语句1; 语句2; ... } ``` 1. **表达式1**:通常用于初始化循环变量,只在循环开始前执行一次。 2. **表达式2**:是循环条件,每次循环开始前都会检查这个条件。如果条件为真,循环继续;如果为假,循环终止。 3. **表达式3**:在每次循环结束后执行,通常用于更新循环变量的值。 在给定的示例中,讲解了如何使用for循环求5个输入数值的和。首先,初始化变量`i`和`sum`,然后进入循环,当`i`小于5时,循环继续。在每次循环中,读取一个输入值`m`并累加到`sum`上,之后`i`自增1。循环结束后,打印出`sum`的值。 ```c int main() { int i, sum = 0, m; for (i = 0; i < 5; i++) { scanf("%d", &m); sum = sum + m; } printf("sum=%d", sum); return 0; } ``` 此程序首先初始化`i`为0,`sum`为0,然后读取5个整数并将它们累加到`sum`中。当`i`增加到5时,循环停止,最后输出总和。 此外,还提到了一个更复杂的例子,计算100个输入数据的和,这可以通过调整for循环的条件实现,例如将`i<5`改为`i<100`。 通过这些例子,我们可以看出for循环在处理重复任务时的便利性,尤其是当循环次数已知的情况下。理解和熟练掌握for循环对于编写任何C语言程序都是至关重要的,因为它能有效提高代码的效率和可读性。

相关推荐

filetype

import pandas as pd def loadData(): # 加载数据 data = pd.read_excel(';D:\;\;超市销售关联.xlsx';) # , encoding=';utf-8'; inputList = data.values.tolist() # 将表格中的 T 和 F 转换为 商品名称,A——F为商品编号 header = [';A';, ';B';, ';C';, ';D';, ';E';, ';F';, ';G';, ';H';, ';I';, ';J';, ';K';] itemList = [] for item in inputList: cur = [] for i in range(len(item)): if item[i] == ';T';: cur.append(header[i]) itemList.append(cur) return itemList # 生成频繁一项集 def create_C1(data_set): C1 = set() for t in data_set: for item in t: item_set = frozenset([item]) C1.add(item_set) return C1 # 判断是否满足apriori基本性质 def is_apriori(Ck_item, Lksub1): ";";"; 判断频繁候选k项集是否满足Apriori性质 输入: Ck_item: Ck中包含所有频繁项的候选k-项集 Lksub1: Lk-1, 一个包含所有频繁候选(k-1)-项集的集合 输出: True: 满足 False: 不满足 ";";"; for item in Ck_item: sub_Ck = Ck_item - frozenset([item]) if sub_Ck not in Lksub1: return False return True def create_Ck(Lksub1, k): ";";"; 创建Ck,包含所有频繁候选k项集 by Lk-1';s own connection operation. 输入: Lksub1: Lk-1, 包含所有频繁候选(k-1)项集 k: 频繁项集项目编号 输出: Ck: 所有频繁候选k项集 ";";"; Ck = set() len_Lksub1 = len(Lksub1) list_Lksub1 = list(Lksub1) for i in range(len_Lksub1): for j in rangeƑ, len_Lksub1): l1 = list(list_Lksub1[i]) l2 = list(list_Lksub1[j]) l1.sort() l2.sort() if l1[0:k - 2] == l2[0:k - 2]: Ck_item = list_Lksub1[i] | list_Lksub1[j] # pruning if is_apriori(Ck_item, Lksub1): Ck.add(Ck_item) return Ck def generate_Lk_by_Ck(data_set, Ck, min_support, support_data): ";";"; 从Ck中删除不频繁的生成Lk. 输入: data_set: 交易数据库 Ck: 候选k项集 min_support: 最小支持度 support_data: 频繁项集+支持度组成数据字典 输出: Lk: 所有频繁项集. ";";"; Lk = set() item_count = {} for t in data_set: for item in Ck: if item.issubset(t): if item not in item_count: item_count[item] = 1 else: item_count[item] += 1 t_num = float(len(data_set)) for item in item_count: if (item_count[item] / t_num) >= min_support: Lk.add(item) support_data[item] = item_count[item] / t_num return Lk

filetype

7-6 吉老师的回归分数 15 全屏浏览 切换布局 作者 DAI, Longao 单位 杭州百腾教育科技有限公司 曾经在天梯赛大杀四方的吉老师决定回归天梯赛赛场啦! 为了简化题目,我们不妨假设天梯赛的每道题目可以用一个不超过 500 的、只包括可打印符号的字符串描述出来,如:Problem A: Print "Hello world!"。 众所周知,吉老师的竞赛水平非常高超,你可以认为他每道题目都会做(事实上也是……)。因此,吉老师会按照顺序看题并做题。但吉老师水平太高了,所以签到题他就懒得做了(浪费时间),具体来说,假如题目的字符串里有 qiandao 或者 easy(区分大小写)的话,吉老师看完题目就会跳过这道题目不做。 现在给定这次天梯赛总共有几道题目以及吉老师已经做完了几道题目,请你告诉大家吉老师现在正在做哪个题,或者吉老师已经把所有他打算做的题目做完了。 提醒:天梯赛有分数升级的规则,如果不做签到题可能导致团队总分不足以升级,一般的选手请千万不要学习吉老师的酷炫行为! 输入格式: 输入第一行是两个正整数 N,M (1≤M≤N≤30),表示本次天梯赛有 N 道题目,吉老师现在做完了 M 道。 接下来 N 行,每行是一个符合题目描述的字符串,表示天梯赛的题目内容。吉老师会按照给出的顺序看题——第一行就是吉老师看的第一道题,第二行就是第二道,以此类推。 输出格式: 在一行中输出吉老师当前正在做的题目对应的题面(即做完了 M 道题目后,吉老师正在做哪个题)。如果吉老师已经把所有他打算做的题目做完了,输出一行 Wo AK le。 输入样例 1: 5 1 L1-1 is a qiandao problem. L1-2 is so...easy. L1-3 is Easy. L1-4 is qianDao. Wow, such L1-5, so easy. 输出样例 1: L1-4 is qianDao. 输入样例 2: 5 4 L1-1 is a-qiandao problem. L1-2 is so easy. L1-3 is Easy. L1-4 is qianDao. Wow, such L1-5, so!!easy. 输出样例 2: Wo AK le #include<bits/stdc++.h> using namespace std; int main() {int n,m;string a="qiandao";string b="easy";string k=" "; cin>>n>>m;//n道题做完m道 while(n--) { string s; cin>>s; for(int i=0;i<s.length();i+=a.length()) if(s.substr(i,a.length())==a) continue; for(int i=0;i<s.length();i+=b.length()) if(s.substr(i,b.length())==b) continue; m--; k=gets(s);if(m==0)break; } if(m==0) cout<<puts(k)<<endl; else cout<<"Wo AK le"<<endl; return 0;}修改代码

赵小杏儿
  • 粉丝: 26
上传资源 快速赚钱