-1
\\First program
#include<stdio.h>
int main()
{
int array[30],n,c,d,position,swap;
clrscr();
printf("Enter the legth of array\n");
scanf("%d",&n);
printf("Enter element in array\n");
for(c=0;c<n;c++)
{ scanf("%d",&array[c]); }
for(c=0;c<(n-1);c++)
{
position = c;
for(d=c+1;d<n;d++)
{
if(array[position] > array[d])
position = d;
}
if(position != c)
{ swap = array[c];
array[c]= array[position];
array[position] = swap;
}
}
printf("Sorted list\n");
for(c=0;c<n;c++);
{printf("%d\n",array[c]);}
getch();
}
\\Second program
#include<stdio.h>
#include<conio.h>
int main()
{
int array[30],n,c,d,position,swap;
clrscr();
printf("Enter the legth of array\n");
scanf("%d",&n);
printf("Enter element in array\n");
for(c=0;c<n;c++)
{ scanf("%d",&array[c]); }
for(c=0;c<(n-1);c++)
{
position = c;
for(d=c+1;d<n;d++)
{
if(array[position] > array[d])
position = d;
}
if(position != c)
{ swap = array[c];
array[c]= array[position];
array[position] = swap;
}
}
printf("Sorted list\n");
for(c=0;c<n;c++);
{printf("%d\n",array[c]);}
getch();
return 0;
}
這兩個程序是選擇排序的程序。我認爲第一個程序和第二個程序幾乎是一樣的,但輸出不一樣。我使用turbo c來運行這兩個程序相同的程序相同的編譯器,但我有不同的輸出在c
在第一個程序,我從互聯網複製和結果是真實的(輸入是2 1 /輸出是1 2)。對於第二個程序,我嘗試自己做(輸入是2 1 /輸出是3),結果是錯誤的。
大家plz幫助我。我感到困惑。謝謝:]
「幾乎相同」與「相同」不一樣 - 找到兩者之間的區別,您可能會發現不同輸出的原因。 –
'#include'和'return 0;'是我用工具發現的唯一區別。 –
MikeCAT
聽起來像未定義的行爲。你可能有未被初始化的變量和/或你訪問你的數組越界。 –