简洁的C/C++ 练习3 控制语句
2023-09-27 14:29:24 时间
目录
7-1 计算指数
#include<iostream>
using namespace std;
int main()
{
int n,sum;
cin>>n;
sum=1;
for(int i=1;i<=n;i++)
sum*= 2;
cout<<"2^"<<n<<" = "<<sum<<endl;
return 0;
}
7-2 n个非负整数的统计
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n=0;
int temp;
vector<int> nums;
while(cin>>temp)
{
nums.push_back(temp);
n+=1;
if(getchar()==-1)
break;
}
int iSum=nums[0] , average , iProduct=nums[0] , iSmallest=nums[0] , iLargest=nums[0];
for(int i=1;i<n;i++)
{
if(nums[i]!=-1)
{
if(nums[i]>iLargest)
iLargest = nums[i];
else if(nums[i]<iSmallest)
iSmallest = nums[i];
iSum += nums[i];
iProduct *= nums[i];
}
}
average = iSum / (n-1) ;
cout << "Sum is " << iSum << endl;
cout << "Average is " << average <<endl;
cout << "Product is " << iProduct <<endl;
cout << "Smallest is " << iSmallest <<endl;
cout << "Largest is " << iLargest <<endl;
return 0;
}
正确用法:
while(cin>>temp)
错误用法:
while(1)
{
cin>>temp;
7-3 打印指定大小的表格
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<"integer "<<"square "<<"cube"<<endl;
for (int i=0;i<n;i++)
{
cout<<left<<setw(8)<<i<<setw(7)<<i*i<<setw(4)<<i*i*i<<endl;
}
return 0;
}
stew() //默认右对齐
错误:
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<"integer"<<"\t"<<"square"<<"\t"<<"cube"<<endl;
for (int i=0;i<n;i++)
{
cout<<i<<"\t"<<i*i<<"\t"<<i*i*i<<endl;
}
return 0;
}
7-4 打印指定大小的棋盘格
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for (int i=0;i<n;i++)
{
if(i%2!=0)
for (int j=0;j<n;j++)
cout<<" *";
if(i%2==0)
for (int j=0;j<n;j++)
cout<<"* ";
cout<<"\n";
}
return 0;
}
7-5 日期格式化
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int day=0,month=0,year=0;
char sign='-';
cin>>month>>sign>>day>>sign>>year;
cout<<year<<sign;
cout<<setfill('0')<<setw(2)<<month;
cout<<sign;
cout<<setfill('0')<<setw(2)<<day<<endl;
return 0;
}
方法二:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a;
getline(cin,a);
cout<<a.substr(6,9)<<"-"<<a.substr(0,5);
return 0;
}
方法三:
#include<stdio.h>
int main(void)
{
int year,month,day;
scanf("%d-%d-%d",&month,&day,&year);
printf("%4d-%02d-%02d\n",year,month,day);
return 0;
}
7-6 逆序的三位数
方法一:
#include <iostream>
using namespace std;
int main()
{
char a,b,c;
cin>>a>>b>>c;
if (c!='0')
cout<<c<<b<<a;
else
if (b!='0')
cout<<b<<a;
else
cout<<a;
return 0;
}
方法二:
#include <iostream>
using namespace std;
int main()
{
int x, a, b, c,y;
cin >> x;
a = x/100; //百位
b = x%100/10; //十位
c = x%10; //个位
y = (c)*100+(b)*10+a;
cout<<y;
return 0;
}
方法三:
#incluce<stdio.h>
int main()
{
int x,a,b,c,y;
scanf("%d",&x);
a = x/100;
c = x%10;
b = (x%100)/10;
y = (c)*100+(b)*10+a;
printf("%d",y);
return 0;
}
7-7 打印输入正整数的各位数字
#include <iostream>
using namespace std;
int main()
{
int N;
int a=1,b;
cin>>N;
b = N;
//判断位数
while(b>10)
{
a*=10;
b/=10;
}
//数字输出
while(a!=1)
{
cout<<N/a<<" ";
N%=a;
a/=10;
}
cout<<N/a;
return 0;
}
7-8 估算数学常数e的值
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n;
double e=1.0,m=1.0;
cin>>n;
for(int i=1;i<=n+3;i++)
{
m = m*i;
e+=(1/m);
}
cout<<fixed<<setprecision(n)<<e<<endl;
return 0;
}
相关文章
- C/C++数据结构(六) —— 循环队列
- C++中几个值得分析的小问题
- C++基础代码--20余种数据结构和算法的实现
- C#调用C++写的dll,C++调用C++的dll
- 【c++】流状态的查询和控制
- 13届蓝桥杯青少组C++中级组省赛
- 【算法】栈实现迷宫求解(C++)(详解)
- Status of the C++11 Migrator----Monday, April 15, 2013
- 《挑战30天C++入门极限》C++的iostream标准库介绍(2)
- c++实现磨砂玻璃(类似马赛克)效果
- 为什么 C++ 有指针了还要引用?
- C++017-C++指针及其应用
- C++重载IO操作符
- C++11/std::atomic - 原子变量(不加锁实现线程互斥)
- C++ | 虚函数表内存布局