数组数组,不要指针!!
大侠们,帮帮小弟呀,我最近遇到了一道题,却想来想去都想不通!虽然能编出来一点点,但有很多错误!求解!!!!题目:输入含有n个数值的整数数列和整数m,利用选择排序方法挑选出钱m个较小的数值,并显示输出。要求挑选出前m个数值后,程序立即结束。(不能事先规定n的值。)请不要神马指针,只需要基本的算法就行了。谢谢!!!
以下是我的代码,但错漏百出!
#include<stdio.h>
int main()
{
int num[100],m,j,i,min,n;
char ch,zm[100];
printf("请输入m的值:\n");
scanf("%d",&m);
printf("请输入n个数:\n");
ch=getchar();
i=0;
do
{
j=0;
do
{
ch=getchar();
if(ch==' '||ch=='\n')
break;
zm[j]=ch;
j++;
}while(1);
num[i]=atoi(zm);
i++;
if(ch=='\n')
break;
}while(1);
n=i;
i=0;
while(i<m)
{
min=i;
j=min+i;
do
{
if(num[min]>num[j])
min=j;
j++;
if(j>=n-1)
break;
}while(1);
if(min!=i)
{
j=num[i];
num[i]=num[min];
num[min]=j;
}
i++;
}
for(i=0;i<m;i++)
{
printf("%5d",num[i]);
}
printf("\n");
return 0;
}