排序练习题
{
/***********SPACE***********/
【?】;
/***********SPACE***********/
for(j=i+1;【?】;j++)
if(a[j]<a[k]) k=j;
/***********SPACE***********/
if(【?】)
{
t=a[i];
a[i]=a[k];
for(j=i;j<num;j++)
/**********FOUND**********/
if(s[i]>s[j])
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
main()
{
char s[10];
clrscr();
printf("输入8个字符的字符串:");
gets(s);
fun(s,8);
{
t =aa[a]; b = a1;
/**********FOUND**********/
while((b>=0) and (t>aa[b]))
{
aa[b+1]=aa[b]; b; }
/**********FOUND**********/
aa[b+1] = t
}பைடு நூலகம்
}
main()
{ char a[N];
然后根据前两个元素的情况插入第三个元素,再插入第
四个元素…)。
#define N 81
#include <stdio.h>
#include <string.h>
void fun(char *aa,intn)
{
/**********FOUND**********/
inta ,b;t;
for( a = 1; a<n; a++)
}
main()
{
inta[13],i;
clrscr();
for(i=0;i<13;i++)
a[i]=random(20)5;
for(i=0;i<13;i++)
printf("%3d",a[i]);
printf("\n\n");
sort(a,13);
for(i=0;i<13;i++)
printf("%3d",a[i]);
a[j+1]=t;
}
【程序设计】
功能:编写函数用选择排序法对数组中的数据进行从小到
大的排序。
#include <stdlib.h>
#include<stdio.h>
void sort(inta[],intn)
{
/**********Program**********/
/********** End **********/
然后根据前两个元素的情况插入第三个元素,再插入第
四个元素…)。
#define N 81
#include <stdio.h>
#include <string.h>
void fun(char *aa,intn)
{
/**********FOUND**********/
inta ,b;t;
for( a = 1; a<n; a++)
if(OUT==NULL)
{
printf("Write File Error");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%d",&i[n]);
}
fun(i,10);
for(n=0;n<10;n++)
{
fprintf(OUT,"%d\n",i[n]);
}
fclose(IN);
fclose(OUT);
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char *s,intnum)
{
/**********FOUND**********/
inti;j;
char t;
for(i=0;i<num;i++)
/**********FOUND**********/
for(i=0;i<n1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(a[k]>a[j]) k=j;
if(k!=i)
{t=a[i];
a[i]=a[k];
a[k]=t;
}
}
【程序改错】
功能:用插入排序法将n个字符进行排序(降序)。
提示:插入法排序的思路是:先对数组的头两个元素进行排序,
printf("The result array:\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
}
【程序填空】
功能:从键盘上输入一个字符串,将该字符串升序排列后输出到
文件test.txt中,然后从该文件读出字符串并显示出来。
#include<stdio.h>
inti;
printf("\nEntera string: ");gets( a);
fun(a ,strlen(a));
printf("\nThestring: ");puts(a);
getch();
}
【程序改错】
功能:请编写函数fun,对长度为8个字符的字符串,将8个字符按
降序排列。
例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。
if(【?】)
{
t=str[j];
str[j]=str[j+1];
str[j+1]=t;
}
/***********SPACE***********/
【?】;
fclose(fp);
fp=fopen("test.txt","r");
fgets(str1,100,fp);
printf("%s\n",str1);
printf("\n%s",s);
getch();
}
【程序设计】
功能:编写函数fun用比较法对主程序中用户输入的具有10
个数据的数组a按由大到小排序,并在主程序中输出
排序结果。
#include "stdio.h"
intfun(intarray[],intn)
{
/**********Program**********/
{
t =aa[a]; b = a1;
/**********FOUND**********/
while((b>=0) and (t>aa[b]))
{
aa[b+1]=aa[b]; b; }
/**********FOUND**********/
aa[b+1] = t
}
}
main()
{ char a[N];
}
intk,j,t;
for (k=0;k<n1;k++)
for (j=k+1;j<n;j++)
if (array[k]<array[j])
{
t=array[k];
array[k]=array[j];
array[j]=t;
}
【程序设计】
功能:编写函数用冒泡排序法对数组中的数据进行从小到
大的排序。
#include <stdlib.h>
}
sort(i,10);
for(n=0;n<10;n++)
fprintf(OUT,"%d\n",i[n]);
fclose(IN);
fclose(OUT);
}
inti,j,t;
for(i=0;i<n1;i++)
for(j=0;j<n1i;j++)
if(a[j]>a[j+1])
{t=a[j];
a[j]=a[j+1];
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write File Error");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%d",&i[n]);
yzj();
getch();
}
yzj()
{
FILE *IN,*OUT;
intn;
inti[10];
into;