西安电子大学计算机考研复试机试(2019)+学长讲解(2)+math/数组

2019-04-13 14:14发布

常用math函数

  • fabs(float a);(%.2f):求浮点数的绝对值
  • floor(float a);向下取整(如,23.22--->23;-23.22--->-24)
  • ceil(float a);向上取整,与floor相反
  • pow(float a,float b);a的b次幂,其中a>0
  • sqrt(float a);根号a,其中a>0
  • log(float a);自然对数--->c语言中不存在对任意底数求对数的函数,因此需要使用换底公式
  • sin(pi/6);弧度制--->结果是:0.500000
  • round(3.299);---->四舍五入取整

选择结构

switch语句:case中的常量表达式是入口标号,由此开始顺序执行。如果需要每个不同条件执行相对应的语句的话,需要在每一个case分支后面加上break。 int main() { char a ; // cin>>a; while(cin>>a){ switch(a){ case 'a': cout<

循环结构

  • while(条件){语句}----->当条件满足时执行循环体
  • do{语句}while(条件);--->先执行循环体,当条件满足时继续循环。语句中必须包含改变条件值的语句。相对于第一种至少会执行一次语句。
  • break;跳出循环体或者switch语句;continue;结束本次循环。

学长作业

题目描述:任意给定 n 个整数,求这 n 个整数序列的和、最小值、最大值 输入描述:输入一个整数n,代表接下来输入整数个数,0 < n <= 100,接着输入n个整数,整数用int表示即可。 输出描述:输出整数序列的和、最小值、最大值。用空格隔开,占一行 样例输入
2
1 2
样例输出
3 1 2 #include #Include using namespace std; int main() { int n,sum=0; cin>>n; int a[n]; for(int i=0;i>a[i]; sum+=a[i]; } sort(a,a+n); cout< 题目描述:已知一个只包含 0 和 1 的二进制数,长度不大于 10 ,将其转换为十进制并输出。 输入描述:输入一个二进制整数n,其长度大于0且不大于10 输出描述:输出转换后的十进制数, 占一行 样例输入
110 样例输出
6 /* 1.将二进制数当作十进制数,将其每一位分出来 2.用该位数n乘相对应的2的n次方,sum加和 */ #include #include using namespace std; int main() { int n,sum=0,i=0; cin>>n;// 读取二进制数 for(; i < 10; i++){ sum += n % 10 * pow(2.0,i); n/=10; if(n==0){ break; } } cout<,数字表示长度,不足用0补齐;若输入含有除0、1以外的数会报错*/ #include #include using namespace std; int main(){ bitset<16> bint; cin>>bint; cout< 题目描述:打印 n 阶实心菱形 输入描述:输入一个整数n,0 < n <= 10 输出描述:输出 n 阶实心菱形 , 占 2*n-1 行 样例输入
3
样例输出
  *
 ***
*****
 ***
  * #include using namespace std; /* 1,n阶实心菱形 ,分上下两部分 2,上部分的空格数与*数和n的关系搞对就ok了 */ int main() { int n,i,j; cin>>n; // 读取阶数 for(i=1;i<=n;i++){ for(j=n-i;j>0;j--){ cout<<" "; } for(j=1;j<2*i;j++){ cout<<"*"; } cout<0;i--){ for(j=n-i;j>0;j--){ cout<<" "; } for(j=1;j<2*i;j++){ cout<<"*"; } cout<