c1-第一周

文章目录


目录

1月

1. 任意输入一个3位整数(100~999,包含100与999),判断输入的整数是否是质数,如果是质数则输出是质数,否则输出不是质数

void test1_1(){
    int num;
    cin >> num;
    if(num >=100 && num <=999){
        int count = 0; //计数
        for(int k = 1;k<=num;k++){ //因子
            if(num%k==0){
                count++;
            }
        }
        if(count==2){
            cout << num << "是质数" << endl;
        } else{
            cout << num << "不是质数" << endl;
        }

    } else{
        cout << "输入错误" << endl;
    }
}

2.“降序数”是指一个自然数的低位数字不大于高位数字的数。例如:651,555,321都认为是降序数,但626不是降序数。编一个程序,输入一个3位数,判定它是否为降序数,并输出判断结果

void test1_2(){
    int num ;
    cin >> num;
    int h = num/100%10; //百位
    int s = num/10%10; //十位
    int l = num%10; //个位
    if(h>=s && s>=l){
        cout << "是降序数" << endl;
    } else{
        cout << "不是降序数" << endl;
    }
}

3.任意输入一个4位整数(1000~9999,包含1000与9999),先判断输入是否符合条件,不符合则提示重新输入,编程算出各位数字加在一起的和是多少并输出

void test1_3(){
    int num ;
    cin >> num;
    if(num >=1000 && num<=9999){
        int q = num/1000%10;
        int b = num/100%10;
        int s = num/10%10;
        int g = num%10;
        cout << "和:" << q+b+s+g << endl;
        
    } else{
        cout <<"不符合条件";
    }
}

4.定义一个二维数组a,定义一个指针p指向数组,通过指针遍历数组。求出数组中各元素中的最大值,求出数组中各元素中的最小值,然后输出最大值和最小值

	int test3_zz(){
    int b[2][3] = {{1,2,3},{4,5,6}};
    int *p = b[0]; //相当于b[0][0]
    int max = b[0][0];
    int min = b[0][0];
    for(int i = 0;i<2;i++){
        for(int j = 0;j<3;j++){
            cout <<*p<<endl;
            if(max < *p){
                max = *p;
            }
            if(min > *p){
                min = *p;
            }
            p++;
        }
        cout <<endl;
    }
    cout << max << min << endl;
}

5.输入整数a和b,求两个数的最大公约数,求两个数的最小公倍数,要求用上三元运算符与循环等

void test1_5()
{
    int a,b;
    cin >>a >> b;
    int min = (a>b)?b:a; //最小数字 2
    for(int i = min;i>=1;i--){ // 2 1
        if(a%i == 0 && b%i==0){
            cout << "最大公约数:" << i<< endl;
            cout << "最小公倍数" << a*b/i << endl;
        }
    }
}

2月

1.编程计算 s=11+33+…+99*99 的值

(1)定义并初始值s=0
(2)实现0-99的循环
(3)输出结果s

	int test2_1(){
    int s=0;//局部变量
    for(int i=1;i<100;i+=2){//循环100次
        s+=i*i; //1*1 + 3*3
    }
    cout << "结果:"<<s<< endl;
}

2.编程输出下面图形:(1)要求使用for循环 (2)正确输出图形

在这里插入图片描述

int test2_2(){
    for(int i = 5;i>=1;i--){ //外层循环执行5次,表示5行
        for(int k = 5;k>=i;k--){
            cout << " "; //打印空格
        }
        for(int j=1;j<=2*i-1;j++) {
            cout << "*"; //打印*
        }
        cout << endl;//换行
    }
}

3.编程实现输入5个整数

(1)提示并输入5个整数
(2)定义数组,将输入数据存入数组
(3)然后由小到大排序
(4)输出排序结果
(5)然后输出最小值与最大值

	int test2_3(){
    int arr[5]; //空数组,长度是5
    for(int i = 0;i< size(arr);i++){//循环5次
        cin >> arr[i];  //给数组赋值
    }
    sort(arr,arr+5); //排序,升序
    cout << "最小:" << arr[0] <<"      "<< "最大值:" << arr[5-1];
}

4.4.输入一个大于0的整数

(1)判断是否符合条件,不符合则提示输入有误,请重新输入
(2)判断是奇数还是偶数并输出判断
(3)判断是否是素数并输出判断

int test2_4(){
    int num;
    cin >> num;//用户输入
    if(num>0){
        if(num%2==0){
            cout << "是偶数" << endl;
        } else{
            cout << "是奇数" << endl;
        }

        //i因子(范围  1-本身)
        int count = 0; //计数
        for(int i = 1;i<=num;i++){
            if(num%i == 0){
                count++; //只要能整除,就计数,素数最多只有2个
            }
        }
        if(count == 2){
            cout << num<<"是素数" << endl;
        } else{
            cout << num<<"不是素数" << endl;
        }
    } else{
        cout << "输入错误";
    }
}

12月

1.已知n>=0,f(0)=0,f(n)=n+f(n-1),用递归函数计算f(n)的结果,并输出f(10)的值

int f(int n){
    if(n==0){
        return 0;
    } else{
        return n+f(n-1);
    }
}
int main(){
	cout << f(10);
}

2.编写三个重载函数mul,分别实现整数相乘,浮点数相乘,Double数值相乘,并在main函数中调用,实现不同类型计算

void mul(int a,int b){ //2
    cout << a*b; //return
}
void mul(double a,double  b){
    cout << a*b;
}
void mul(float a,float  b){
    cout << a*b;
}

int main(){
    mul(1.2f,4.5f); //float 调用函数
    mul(1.2,4.5);
    mul(4,5);
}

3.由键盘输入一个10100间的整数做一个人的年龄,要求输入值正确,否则提示重新输入,根据输入数值,判断这个人是少年(1018),青年(1935),中年(3660),还是老年(61~100)

void test3(){//无返回值
    int age;
    cin >> age;
    if(age>=10 && age<=100){
        if(age>=10 && age <=18){
            cout << "少年";
        } else if(age>=19 && age <=35){
            cout << "青年";
        }
        else if(age>=36 && age <=60){
            cout << "中年";
        } else{
            cout << "老年";
        }
    } else{
        cout << "输入错误";
    }
}

4. 编程求1~100(不包括1和100)间所有素数,并遍历输出这些素数,同时计算并输出素数个数

void test4(){
    int total = 0; //素数的总个数
    for(int num = 2;num<100;num++){ //循环num从2开始到99
        int count = 0; //计数 用来判断是不是素数
        for(int k = 1;k<=num;k++){ //k因子,从1到本身
            if(num%k == 0){ //数字%因子
                count++;
            }
        }
        if(count == 2){ //是素数
            cout << num << endl;
            total++; //素数的数量累加
        }
    }
    cout << "共有" << total << "个素数" << endl;
}

5.定义四个整数abcd,求出最大值与最小值,并判断b是否是中间值(不是最大也不是最小值)

void test5(){
    int a,b,c,d; //定义4个变量
    cin >> a >> b >> c>> d; //输入4个数字
    int arr[4] ={a,b,c,d}; //4个放到数组
    sort(arr,arr+4); //升 小到大
    cout << "最小:" << arr[0] << "最大" << arr[3] << endl;
    if(b>arr[0] && b<arr[3]){ //判断中间值
        cout <<b <<"是中间值" << endl;
    } else{
        cout <<b << "不是中间值" << endl;
    }
}

10月

1.输入:2, 3, 11, 9输出:2是素数 3是素数11是素数9不是素数

void test10_1(){ //只能被1和本身整数的数字
    int n[]={2,3,11,9};
    for(int i = 0;i< size(n);i++){ //下标
        int count = 0; //计数
        for(int k = 1;k<=n[i];k++){ //因子1开始  数字本身结束
            if(n[i]%k ==0){ //数字%因子
                count++;//计数
            }
        }
        if(count == 2){ //1、本身
            cout << n[i]<<"是素数(质数)"<< endl;
        } else{
            cout << n[i]<<"不是素数(质数)"<<endl;
        }
    }
}

(2)输入三角形三个边长值,并判断该三角形是否为直角三角形

提示:根据勾股定理,斜边C=5,直角边A、B分别为3、4时,是直角三角形
使用if条件判断c方= a方+b方为真时,输出是直角三角形的文字到屏幕
计算A/C 和 B/C的值,即sin和cos
并输出至屏幕

bool test10_2(){
    double a,b,c;
    cin >> a>> b>>c;
    if(a*a+b*b==c*c){ //a方+b方=c方  c是斜边
        cout << "是直角三角形" << a/c <<" "<< b/c <<endl; //sin和cos
        return true;
    } else if(b*b+c*c == a*a){
        cout << "是直角三角形" << c/a <<" "<< b/a << endl;
        return true;
    } else if(a*a+c*c==b*b){
        cout << "是直角三角形" <<a/b<<" "<< c/b << endl;
        return true;
    } else{
        cout << "不是直角三角形" << endl;
        return false;
    }
}
int main(){
	cout << test10_2();
}

(3)由键盘输入两个2位正整数a、b,并由四个数字拼接成新的正整数c

a的十位、个位放置于c的百位、个位
b的十位、个位放置于c的千位、十位
例:a=56;b=34
则C=3546

void test10_3(){
    int a,b;
    cin >>a >> b; //用户输入
    int c = b/10%10*1000+a/10%10*100+b%10*10+a%10;
    cout << c<< endl;
}

九九乘法表

int main(){
    for(int i = 1;i<=9;i++){
        for(int j = 1;j<=i;j++){
            cout << j << "*" << i << "=" << j*i << " ";
        }
        cout << endl;
    }
}

在这里插入图片描述

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值