数组元素排序问题
本帖最后由 nain001 于 2013-03-03 14:27:34 编辑 题目:编写产生100个1到10范围内的随机数的程序,并且以降序排序。
小白的代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
void rank(int*,int);
int main(void){
int*pti;
int i;
int n=100;
srand((unsigned int)time(0));
pti = (int *)malloc(100*sizeof(int));
for(i=0;i<n;i++)
pti[i]=rand()%10+1;
rank(pti,n);
getch();
return 0;
}
void rank(int ar[],int n){
int i,k;
int *temp;
for(i=0;i<n-1;i++)
for(k=i+1;k<n;k++)
if(ar[i]>ar[k]){
*temp=ar[i]; //为何用Visual studio编译成功但运行提示错误,跳出
ar[i]=ar[k];//Run-Time Check Failure #3 - The variable 'temp' is
//being used without being initialized.
ar[k]=*temp;
}
for(i=0;i<n;i++){
if(i%10==0)
printf("\n");
printf("%-4d",ar[i]);
}
}
*temp=ar[i];
ar[i]=ar[k];
ar[k]=*temp;
temp=ar[i];
ar[i]=ar[k];
ar[k]=temp;