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]));
}
输入及输出结果如下:
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;
}
第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;
}