C++数组的排序和计算不会打这个程序

img


这个用C++要怎么打啊?我想要详细的每一个步骤,有没有人来用这个简单题练练手。

#include<stdio.h>

// 插入排序
void insertion_sort(int arr[],int len){
        for(int i=1;i<len;i++){
                int key=arr[i];
                int j=i-1;
                while((j>=0) && (key<arr[j])){
                        arr[j+1]=arr[j];
                        j--;
                }
                arr[j+1]=key;
        }
}
int main() {
    // 所有数据
    int num[10] = {0};
    int list[10] = {0};
    // 个数
    int number = 0;
    // 和
    int zarea = 0;
    // 输入
    for ( int i = 0 ; i < 10 ; i++ ) {
        scanf("%d", &num[i]);

    }
    // 记录
    for ( int i = 0 ; i < 10 ; i++) {
        // 记录正数的个数
        if ( num[i] > 0  ) {
            // 迁移到另一个数组里
            list[number] = num[i];
            // 如果是正数
            number++;
            // 求和
            zarea += num[i];
        }
    }
    // 排序
    insertion_sort(list,number);
    // 输出
    printf("正数有 %d 个\n", number);
    printf("和为 %d\n",zarea);
    printf("排序后 :");
    for( int i = 0 ; i < number ; i++ ){
        printf("%d ",list[i]);
    }
}