大学简单c++内容下午要讲,没搞懂具体内容

1.输入十个整数保存到数组找出最小数和下标,并把它和第二个元素兑换位置。
2.编写函数计算任一输入的两位整数的各位数字之和,并建立一个5元素的数组,在主函数中调用计算函数输入个数组元素的数字之和。数组为[5]={23,56,72,80,99}。

代码实现如下:

#include<iostream>
using namespace std;
int fun(int a)
{
    return (a / 10 % 10) + a % 10;
}
int main()
{
    //题1
    int min,flag,i,temp,a[10];
    for (i = 0; i < 10; i++)   //输入
        cin >> a[i];
    min = a[0];
    flag = 0;
    for (i = 0; i < 10; i++)   //找出最小数及下标
        if (min > a[i])
        {
            min = a[i];
            flag = i;  //最小数下标
        }
    printf("与第二个元素交换前,min=%d,flag=%d\n", min, flag);
    temp = a[1];  //与第二个数交换坐标
    a[1] = min;
    min = temp;
    printf("与第二个元素交换后,min=%d\n", min);
    //题2
    int j,b[5] = { 23,56,72,80,99 };
    for (j = 0; j < 5; j++)
        printf("数组第%d个元素的各位数之和=%d\n", j,fun(b[j]));
}

输入及输出结果如下:

img

1使用冒泡排序就可以实现了

第1题:

#include <iostream>
using namespace std;
const int N = 20;
int a[N];
int main()
{
    int pos = 0;
    cout<<"输入10个整数:"<<endl;
    for(int i = 0; i < 10; ++i)
    {
        cin>>a[i];
        pos = a[i] > a[pos] ? pos : i;
    }
    cout<<"最小值为下标为 " << pos <<" 的元素: "<<a[pos]<<endl;
    //和a[1]交换位置
    int temp = a[pos];
    a[pos] = a[1];
    a[1] = temp;
    cout<<"和a[1]交换后:a[1] = "<<a[1]<<", a["<<pos<<"] = " <<a[pos]<<endl;
    return 0;
}

img

第2题:

#include <iostream>
using namespace std;
int f(int n) //计算非负整数n的各位数字之和 
{
    int ans = 0;
    while(n)
    {
        ans += n % 10;
        n /= 10;
    }
    return ans;
}
int main()
{
    int a[5] = {23,56,72,80,99};
    int res = 0;
    for(int i = 0; i < 5; ++i)
    {
        cout<<a[i]<<"的各位数字之和为:"<<f(a[i])<<endl;
        res += f(a[i]);
    }
    return 0;
}

img