c++求答案,定义一个10个元素的整型数组,完成以下操作 1、让用户从键盘逐个输入数据元素,输出数组内容
1、 让用户从键盘逐个输入数据元素,输出数组内容;
2、 将数组中最大数与最小数的位置对换后,输出数组内容。
3、 输出数组中的素数。
4、 将数组按降序排序,输出数组内容。 展开
#include <iostream>
#include <math.h>
using namespace std;
bool numIsPrime (int num) {
int i;
int iSqrt = sqrt(num);
for (i = 2; i <= iSqrt; ++i) {
if(num % i == 0)return false;
}
return true;
}
void sortAsDsc (int arr[]) {
int i, k;
int iTmp;
for (i = 0; i < 10 - 1; ++i) {
for (k = 0; k < 10 - 1 - i; ++k) {
if (arr[k] < arr[k + 1]) {
iTmp = arr[k];
arr[k] = arr[k + 1];
arr[k + 1] = iTmp;
}
}
}
}
int main() {
int arr[10];
int i = 0;
int max;
int min;
int iTmp;
while(i < 10) {
cin >> arr[i++];
}
max = 0;
min = 0;
for (i = 0; i < 10; ++i) {
cout << arr[i] << " ";
if (arr[i] > arr[max])max = i;
if (arr[i] < arr[min])min = i;
}
cout << endl << endl;
iTmp = arr[max];
arr[max] = arr[min];
arr[min] = iTmp;
for (i = 0; i < 10; ++i) {
cout << arr[i] << " ";
}
cout << endl << endl;
for (i = 0; i < 10; ++i) {
if (numIsPrime(arr[i]))cout << arr[i] << " ";
}
cout << endl << endl;
sortAsDsc(arr);
for (i = 0; i < 10; ++i) {
cout << arr[i] << " ";
}
cout << endl << endl;
return 0;
}
结果
using namespace std;
void main(void)
{
int a[10];
for(int i=0;i<10;i++)
cin>>a[i];
for(i=0;i<10;i++)
cout<<a[i]<<' ';
cout<<endl;
int max, min, imax, imin;
max=min=a[0];
imax=imin=0;
for(i=1;i<10;i++)
if(a[i]>max) {max=a[i]; imax=i;}
else if(a[i]<min) {min=a[i]; imin=i;}
int t=0;
t=a[imax];
a[imax]=a[imin];
a[imin]=t;
for(i=0;i<10;i++)
cout<<a[i]<<' ';
cout<<endl;
for(i=0;i<10;i++)
{
for(t=2;t<a[i];t++)
if(a[i]%t==0) break;
if(t>=a[i]&&a[i]!=0) cout<<a[i]<<' ';
}
cout<<endl;
for(i=0;i<9;i++)
for(int j=0;j<9-i;j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=0;i<10;i++)
cout<<a[i]<<' ';
cout<<endl;
}
系统显示有几处错误,而且有人已经给出正确答案了,就不好意思了
{
int min = 0;
int max = 0;
int i = 0;
for (i = 1; i < arrayLen; i++)
if (array[i] < array[min])
min = i;
else if (array[i] > array[max])
max = i;
for (i = 0; i < arrayLen; i++)
if (i == min)
cout<<array[max]<<" ";
else if (i == max)
cout<<array[min]<<" ";
else
cout<<array[i]<<" ";
cout<<endl;
}
void printPrime(int array[], int arrayLen)
{
for (int i = 0; i < arrayLen; i++)
{
int j = 2;
for (j = 2; j < sqrt(array[i]); j++)
if (array[i] % j == 0)
break;
if (j != sqrt(array[i]) && array[i] != 1)
continue;
cout<<array[i]<<" ";
}
cout<<endl;
}
void printSort(int array[], int arrayLen)
{
int *arrayCopy = new int[arrayLen];
memcpy(arrayCopy, array, arrayLen);
for (int i = 0; i < arrayLen; i++)
{
for (int j = i + 1; j < arrayLen; j++)
if (arrayCopy[i] < arrayCopy[j])
{
int exchange = arrayCopy[i];
arrayCopy[i] = arrayCopy[j];
arrayCopy[j] = exchange;
}
cout<<arrayCopy[i]<<" ";
}
cout<<endl;
delete []arrayCopy;
}
void main()
{
int array[10] = {0};
for(int i = 0; i < 10; i++)
cin>>array[i];
printExchageMaxAndMin(array, 10);
printPrime(array, 10);
printSort(array, 10);
}
看不太懂,而且前面那位已经回答了,不好意思了
没关系,帮不到您,帮到了别人也可以的。