好奇怪的程序,,,俺是菜鸟 ,,麻烦高手指出那里出错了
题目是 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。我用tc和vc6编译都通过了 而且输入几组数据进去都正常运行了,但是当我输入这样一组数据:10,23,25,89,99,63,21,75,48,147时程序还是运行 ,但是结果是错误的。
源代码如下:
#include <stdio.h>
main()
{
int i, temp;
int digit[10];
int *pointer, *max, *min;
printf("the original array is:\n");
for (i = 0; i < 10; i++)
{
scanf("%d", &digit[i]);
}
max = min = digit;
for (pointer = digit + 1; pointer < digit + 10; pointer++)
{
if (*pointer > *max)
{
max = pointer;
}
else if (*pointer < *min)
{
min = pointer;
}
}
temp = *max;
*max = digit[0];
digit[0] = temp;
temp = *min;
*min = digit[9];
digit[9] = temp;
printf("the new array is:\n");
for (i = 0; i <10; i++)
{
printf("%d ", digit[i]);
}
getch();
}