L1 第6次课 for循环
课前回顾
3064 快递费用
描述
快递行业的高速发展,人们邮寄物品变得方便快捷。某快递点提供华东地区、华南地区、华北地区的寄件服务,其中华东地区编号为1、华南地区编号为2、华北地区编号为3。该快递点寄件的价目表具体如下所示:
编写一个快递计费程序,输入快递重量和地区编号,输出寄快递所需的费用。
输入描述
两个正整数,第一个正整数w,表示快递重量(1≤w≤10000);
第二个正整数id,表示地区编号 (1≤id≤3),数字之间使用空格分隔。
输出描述
一个正整数,表示寄快递的费用。
样例输入 1
1 3
样例输出 1
14
样例输入 2
10 2
样例输出 2
28
提示
首重:最低计费重量,例如:首重为2kg,≤2kg按照2kg的标准收费。
续重:在最低计费重量后增加的重量,例如:>2kg的部分按照3元/kg收费。
#include <iostream>
using namespace std;
int main(){
//1、输入重量和地区编号
int w,id;
cin>>w>>id;
//2、创建变量保存快递费用
int m=0;
//3、根据快递重量和地区编号计算快递费用
switch(id){
case 1:
if(w<=2) m=13;
else m=13+3*(w-2);
break;
case 2:
if(w<=2) m=12;
else m=12+2*(w-2);
break;
case 3:
if(w<=2) m=14;
else m=14+4*(w-2);
break;
}
//4、输出快递费用
cout<<m;
return 0;
}
课堂学习
输出五角星
for循环
给循环计数
循环条件
需要给循环设置条件
for循环执行流程图
输出循环变量
总结
表达式1
表达式2
输出5个☆,循环条件怎么写?
表达式3
想一想
循环语句一循环体
练一练
程序的三种结构
自增自减:自增运算符++和自减运算符-是单目运算符
总结
运算符的优先级
练一练
课堂训练
3067 输出范围内的整数
描述
输出以下3组数(包括0,不包括100 ):
数字之间用空格隔开,每组数输出结束后换行。
1:输出0~100之间的整数。
2:输出0~100之间的偶数。
3:输出0~100之间的奇数。
输入描述
无
输出描述
每组数字之间用空格隔开,每组数输出结束后换行。
样例输入 1
无
样例输出 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41
#include <iostream>
using namespace std;
int main(){
//输出0~100之间的数
for(int i=0;i<100;i+=1)
cout<<i<<" ";
cout<<endl;
//输出0~100之间的偶数
for(int i=0;i<100;i+=2)
cout<<i<<" ";
cout<<endl;
//输出0~100之间的奇数
for(int i=1;i<100;i+=2)
cout<<i<<" ";
cout<<endl;
return 0;
}
3069 求n个整数的和
描述
从键盘输入整数n,再输入n个整数,输出n个整数的和。
输入描述
两行,第一行,一个正整数n,表示输入的整数的个数,1≤n≤100。
第二行,n个整数,使用空格隔开,每个整数m的范围1≤m≤1000。
输出描述
一行,n个数的和
样例输入 1
5 1 2 3 4 5
样例输出 1
15
样例输入 2
10 1 2 3 4 5 6 7 8 9 10
样例输出 2
55
#include <iostream>
using namespace std;
int main(){
//求n个整数的和
int n;
cin>>n;
int sum=0;
int m;
for(int i=1;i<=n;i+=1){
cin>>m;
sum+=m;
}
cout<<sum<<endl;
return 0;
}
3070 n个整数“打擂台
描述
从键盘输入n个整数,输出n个整数中的最大值。
输入描述
两行,第一行,一个正整数n,表示输入的整数的个数,1≤n≤100。
第二行,n个整数,每个整数m的范围1≤m≤1000。
输出描述
一行一个整数,n个数中的最大值
样例输入 1
5 85 78 90 99 60
样例输出 1
99
样例输入 2
6 21 100 79 5 34 3
样例输出 2
100
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
int maxn;
cin>>maxn;
int a;
for(int i=1;i<=n-1;i+=1){
cin>>a;
if(maxn<a) maxn=a;
}
cout<<maxn;
return 0;
}
3074 输出大写字母
描述
① 正序输出大写字母A~Z
② 倒序输出大写字母Z~A
输入描述
无
输出描述
两行,第一行顺序,第二行倒序。每个字母之间使用空格隔开。
样例输入 1
无
样例输出 1
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
#include <iostream>
using namespace std;
int main(){
for(int i='A'; i<='Z'; i++){
char c=i;
cout<<c<<" ";
}
cout<<endl;
for(int i='Z'; i>='A'; i--){
char c=i;
cout<<c<<" ";
}
// for(char i='A'; i<='Z'; i++){
// cout<<i<<" ";
// }
// cout<<endl;
// for(char i='Z'; i>='A'; i--){
// cout<<i<<" ";
// }
return 0;
}
课后作业
3460 不定方程求解
描述
给定正整数a,b,c。求不定方程ax+by=c关于未知数x和y的所有非负整数解。
输入描述
一行,包含三个正整数,两个整数之间用单个空格隔开。每个数均小于1000。
输出描述
n行,每行两个整数,即不定方程的非负整数解,使用空格隔开。
如果没有解,输出"no answer"。
样例输入 1
2 3 18
样例输出 1
0 6 3 4 6 2 9 0
样例输入 2
10 20 999
样例输出 2
no answer
#include<iostream>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
int y;
int r=0;
for(int x=0;x<=c/a;x++){
y=(c-a*x)/b;
if(a*x+b*y==c){
cout<<x<<" "<<y<<endl;
r=1;
}
}
if(r==0)
cout<<"no answer";
return 0;
}