C++的一些简单示例

1、使用选择排序法对一组数据进行排序

#include <iostream>
using namespace std;

int main(){
    int array[4];
    int min;
    int swap;
    int i = 0;

    cout<<"please input the values!"<<endl;
//使用for循环输入数据到数组中
/*  for(int i=0;i<4;i++){
        cin >> array[i];
    }
*/

//使用while循环输入数据到数组中
    while(cin.get() != '\n' && i<4){
        cin >> array[i];
        i++;
    }

    for(int k=0;k<4;k++){
        min = k;
        for(int j=k+1;j<4;j++){
            if(array[min] > array[j]){
                min = j;
            }
        }
        if(min != k){
            swap = array[k];
            array[k] = array[min];
            array[min] = swap;
        }
    }

    for(int t=0;t<4;t++){
        cout << array[t] << " ";
    }
    cout << endl;
    return 0;
}

2、从后往前判断两个数组相同数据的个数

#include <iostream>
using namespace std;

int main(){
    int a1[] = {0,5,78,45,9};
    int a2[] = {78,45,9};
    int len1 = (sizeof(a1))/(sizeof(int));
    int len2 = (sizeof(a2))/(sizeof(int));
    int count = 0;

    while(len1 > 0 && len2 > 0){
        if(a1[len1-1] == a2[len2-1]){
            count++;
        }
        len1--;
        len2--;
    }

    cout << "从后往前a1数组和a2数组相同的数据有:" << count << "个" << endl;
    return 0;
}

3、对一组字符按从小到大的顺序排序

#include <iostream>
using namespace std;

int main(){
    char array[] = {'y','o','a','s','t','u','e','n','m','f'};
    int len = (sizeof(array))/(sizeof(char));
    int min;
    char ch;
    for(int i=0;i<len;i++){
        min = i;
        for(int j=i+1;j<len;j++){
            if(array[j] < array[min]){
                min = j;
            }
        }
        if(i != min){
            ch = array[i];
            array[i] = array[min];
            array[min] = ch;
        }
    }

    for(int k=0;k<len;k++){
        cout << array[k] << " ";
    }
    cout << endl;
    return 0;
}

4、求10000以内的完数

#include <iostream>
using namespace std;

int main(){
    for(int i=2;i<=10000;i=i+2){
        int sum = 1;
        for(int j=2;j<=i/2;j++){
            if(i%j == 0){
                sum = sum + j;
            }
        }
        if(sum == i){
            cout << i << " ";
        }   
    }
    cout << endl;
    return 0;
}

5、求三位数对称素数

#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n);

int main(){
    int count = 0;
    for(int i=100;i<=999;i++){
        if(i%10 == i/100 && isPrime(i)){
            cout << i << " ";
            count++;
        }
        if(count == 10){
            cout << endl;
            count = 0;
        }
    }
    return 0;
}

bool isPrime(int n){
    for(int i=2;i<=sqrt(n*1.0);i++){
        if(n%i == 0){
            return false;
        }
        return true;
    }
}

6、求两个数的最大公约数和最小公倍数

#include <iostream>
using namespace std;

int main(){
    int a,b,c;
    int temp;
    cout << "请输入两个整数!" << endl;
    cin >> a >> b;
    int a1 = a;
    int b1 = b;

    if(a == 0 || b == 0){
        cout << "错误,请重新输入数据!" << endl;
        exit(0);
    }

    if(a<b){
        temp = a;
        a = b;
        b = temp;
    }

    while(b){
        c = a%b;
        a = b;
        b = c;
    }

    cout << "两个数的最大公约数是:" << a << endl;
    cout << "两个数的最小公倍数是:" << (a1*b1)/a << endl;
    return 0;
}

7、矩阵的倒置

#include <iostream>
using namespace std;

int main(){
    int array1[][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };  
    int array2[3][3];
    cout << "倒置前:" << endl;

    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cout << array1[i][j] << " ";
            array2[j][i] = array1[i][j];
        }
        cout << endl;
    }

    cout << "倒置后:" << endl;
    for(int m=0;m<3;m++){
        for(int n=0;n<3;n++){
            cout << array2[m][n] << " ";
        }
        cout << endl;
    }
    return 0;
}

8、判断一个字符串是否是回文数

#include <iostream>
using namespace std;

int main(){
    char array[10];
    cout << "请输入字符串!" << endl;
    gets(array);
    int flag = 0;
    int len = strlen(array);

    for(int i=0;i<=len/2;i++){
        if(array[i] != array[len-1-i]){
            flag = 1;
            break;
        }
    }

    if(flag == 0){
        cout << "这个字符串是回文数!" << endl;
    }else{
        cout << "这个字符串不是回文数!" << endl;  
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值