学堂在线TsinghuaX: 00740043X C++语言程序设计基础 第二章Lab
第一题:简单题目(求和,最大值,最小值)
题目描述
任意给定n个整数,求这n个整数序列的和、最小值、最大值
输入描述
输入一个整数n,代表接下来输入整数个数,n<=100,接着输入n个整数,整数用int表示即可。
输出描述
输出整数序列的和、最小值、最大值。用空格隔开,占一行
样例输入
2
1 2
样例输出
3 1 2
#include<iostream> using namespace std; int main() { int n,a,i,sum=0,min=0,max=0; cin>>n; for(i=1;i<=n;i++) { cin>>a; sum+=a; if(i==1) { max=a,min=a; }else { if (a>max) { max=a; } if (a<min) { min=a; } } } cout<<sum<<" "<<min<<" "<<max<<endl; return 0; }
第二题:进制转换
题目描述
已知一个只包含0和1的二进制数,长度不大于10,将其转换为十进制并输出。
输入描述
输入一个二进制整数n,其长度不大于10
输出描述
输出转换后的十进制数,占一行
样例输入
110
样例输出
6
#include<stdio.h> #define M 50 void BinaryToDecimal(int btd) { int tmp[M],i=0,c=0; while(btd!=0) { tmp[i]=btd%10; btd/=10; i++; } i--; for(;i>=0;i--) c=c*2+tmp[i]; printf("%d",c); } int main(int argc,const char *argv[]) { int m; scanf("%d",&m); BinaryToDecimal(m); return 0; }
第三题:实心菱形
题目描述
打印n阶实心菱形
输入描述
输入一个整数n,n<=10
输出描述
输出n阶实心菱形,占2*n-1行
样例输入
3
样例输出
*
***
*****
***
*
#include <stdio.h> void diamond(int n)//n代表上三角行数-半对角线长 { int i,j; //先输出上三角 for(i=1;i<=n;++i)//输出n行 { //输出第i行 for(j=1;j<=n-i;j++)//先输出n-i个空格 printf(" "); for(j=1;j<=2*i-1;j++)//再输出2*i-1个星号,然后这一行就不管了 printf("*"); printf("\n"); } /* ssss*1 sss***2 ss*****3 s*******n-1 *********n space空格显然每行是n-1个,*号为2*i-1(i从1开始) */ //下面输出下三角,中间最长的那行已经在上面输出过了 for(i=1;i<=n-1;i++)//输出n-1行 { //输出第i行 for(j=1;j<=i;j++) //输出i个空格 printf(" "); for(j=1;j<=2*(n-i)-1;j++) //输出2*(n-i)-1个星号 printf("*"); printf("\n"); } } /* s*******1 ss*****2 sss***3 ssss*n-1 space空格显然每行是i个,*号为2*(n-i)-1(i从1开始) */ int main(int argc,const char *argv[]) { int n; scanf("%d",&n); diamond(n); }