您的位置:首页 > 其它

输入10个整数,将其中最小的数与第一个数对换,把最大的数和最后一个数对换,写三个函数:1.输入10个数,2.进行处理.3输出10个数

2014-07-28 22:58 661 查看
int main(int argc, const char * argv[])
{
int a[10] = {0};
int *p =a;
for (int i = 0; i < 10; i++) {
*(p + i) = arc4random() % (40 - 20 + 1) + 20;
printf("%d ", *(p + i));
}
printf("\n");

//2.进行处理

int min = *p;//存储最小值
int max = *p;//存储最大值
int minIndex = 0;//存储最小值下标
int maxIndex = 0;//存储最大值下标
for (int i = 1; i < 10; i++) {
if (min > *(p + i)) {
min = *(p + i);//找出最小值
minIndex = i;//存储最小值位置
}
}
for (int i = 0; i < 10; i++) {
if (max < *(p + i)) {
max = *(p + i);
maxIndex = i;//存储最大值位置
}
}
printf("最大值下标:%d 最小值下标:%d\n", maxIndex, minIndex);
if (*p != min ) {
if (*p == max ) {
maxIndex = maxIndex;
}
int temp =*p;
*p = *(p + minIndex);
*(p + minIndex) = temp;
}
if (*(p + 10 - 1) != max) {

int temp =*(p +10 - 1);
*(p +10 - 1)   = *(p + maxIndex) ;
*(p + maxIndex) = temp;
}

//3输出10个数

for (int i = 0; i < 10; i++) {
printf("%d ",*(p +i));
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐