2019年10月20日
《CPP学习》
第一篇博客,记录在校学习CPP的过程。
包括一些代码,以及相关认识。不求其他,只望来日回首,步步脚印清晰。
最近做的一些习题。
有问题:均没有学习过别人更优秀的代码。
1、输入year ,判断是否闰年,输出交互
2、输入三个整数,输出最大的那个:
3、分段函数类型的编程,重在交互,体现人机愉快配合也很重要。
4、解一元二次方程,依次输入三个系数,判断delt,得到解
5、利用简化的分支语句来选出三者最大: “ xx? xx:xx”
5、用switch语句进行开关选择,根据实际情况需要分段计算且求和时,不给予“break”操作。
6、用switch语句(带break)实现基本运算。
7、利用循环输出1+……+100的值。注重简洁,用最短的代码解决问题。
8、利用cin.get()检测字符,利用循环结构来检测单词和行数
9、 P48页兔子生新人代码:利用for循环进行数列展示
10、输入一个不超过九位的正整数,求输出反向数字。
11、输出乘法口诀:
12、输出图案
13、判断素数:
14、 P55 利用数组置零来锁定素数,然后循环输出
15、简化枚举算法:求方程组的解
16、求最小公约数:
17、枚举型的输入和输出都会借用到“switch”语句。选气球。
18、 ofstream ifstream 输出输入。
19、转换百分制为五分制。用switch语句
20、输出图像:主点是把握好嵌套关系。
1、输入year ,判断是否闰年,输出交互
```cpp
#include "stdafx.h"
#include<stdio.h>
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int year;
cout<<"请输入待判断的年份:";
cin>>year;
if(year%4==0&&year%100!=0||year%400==0)
cout<<"您输入的年份是:"<<year<<"年"<<'\t'<<"是闰年"<<endl;
else
cout<<"您输入的年份不是闰年"<<endl;
return 0;
}
2、输入三个整数,输出最大的那个:
```cpp
#include "stdafx.h"
#include<stdio.h>
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int a,b,c,max;
cout<<"请输入三个整数:"<<endl;
cin>>a>>b>>c;
if(a>=b) max=a; //两两比较,大的赋值给max
else max=b;
if(max>=c) ;
else max=c;
cout<<"三个数中最大的是:"<<max<<endl;
}
***else就近配对!
3、分段函数类型的编程,重在交互,体现人机愉快配合也很重要。
```cpp
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
double number,total_price,single_price;
double discount;
cout<<"请输入商品的单价:(整数)"<<endl;
cin>>single_price;
cout<<"请输入顾客一次购买的数量:(整数)"<<endl;
cin>>number;
if(number>=5&&number<=9) discount=0.9;
else
if(number>=10) discount=0.8;
else discount=1.0;
total_price=(double)number*single_price*discount;
cout<<"您一次购买的数量为:"<<number<<'\t'<<"该数量下的优惠为打"<<discount*10<<"折"<<'\t'<<"您应该支付的总价为:"<<total_price<<"元"<<endl;
}
4、解一元二次方程,依次输入三个系数,判断delt,得到解
```cpp
#include "stdafx.h"
#include<stdio.h>
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main(){
float a,b,c,delta;
float x1,x2;
cout<<"请输入一元二次方程的各个系数:a,b,c"<<endl;
cin>>a>>b>>c;
delta=b*b-4*a*c;
if(delta>0){
delta=sqrt(delta);
x1=(-b+delta)/(2*a);
x2=(-b-delta)/(2*a);
cout<<"方程有两个不同实根:x1="<<x1<<'\t'<<"x2="<<x2<<endl;}
else
if(delta==0)
{ x1=x2=-b/(2*a);
cout<<"方程有两个相等的根:x1=x2="<<x1<<endl;}
else cout<<"该方程没有实根"<<endl;
}
5、利用简化的分支语句来选出三者最大: “ xx? xx:xx”
意思是xx成立与否?,成立则执行冒号前面的,否则执行冒号后面的;
#include "stdafx.h"
#include<stdio.h>
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main(){
int a,b,c,max,t;
cin>>a>>b>>c;
max=((t=a>=b? a:b)>=c? t:c); //这里面后两层判断。第一层判断ab,较大者赋值给t。第二层判断tc,较大者赋值给max。
cout<<"最大的是:"<<max<<endl;
}
5、用switch语句进行开关选择,根据实际情况需要分段计算且求和时,不给予“break”操作。
#include "stdafx.h"
#include<stdio.h>
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main(){
int c,s,s1;
double p,w,f,d;
cout<<"请输入每公里每吨运费:"<<endl;
cin>>p;
cout<<"请输入运输距离:"<<endl;
cin>>s;
cout<<"请输入货物重量:"<<endl;
cin>>w;
c=s/250;f=0;
s1=s;
switch(c)
{
default:d=0.15;f+=p*w*(s-3000)*(1-d);s=3000;
case 8:case 9:case 10:case 11: d=0.10;f+=p*w*(s-2000)*(1-d);s=2000;
case 4:case 5:case 6:case 7: d=0.08;f+=p*w*(s-1000)*(1-d);s=1000;
case 2:case 3:d=0.05;f+=p*w*(s-500)*(1-d);s=500;//此处学会“把开关合起来,同一个操作”
case 1:d=0.02;f+=p*w*(s-250)*(1-d);s=250;
case 0:d=0;f+=p*w*s*(1-d);
}
cout<<"运输总距离为:"<<s1<<endl;
cout<<"运输总重量为:"<<w<<endl;
cout<<"所需总费用为:"<<f<<endl;
}
6、用switch语句(带break)实现基本运算。
#include "stdafx.h"
#include<iostream>
#include<cmath>
using namespace std;
int main(){
char op;
double num1,num2,res;
cout<<"输入需要进行的操作:如2+3"<<endl;
cin>>num1>>op>>num2;
switch (op){
case '+':res=num1