排序练习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
inti;
printf("\nEntera string: ");gets( a);
fun(a ,strlen(a));
printf("\nThestring: ");puts(a);
getch();
}
【程序改错】
功能:请编写函数fun,对长度为8个字符的字符串,将8个字符按
降序排列。
例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。
for(i=N1;i>=0;i)
if(number<=a[i])
/**********FOUND**********/
a[i]=a[i1];
else
{
a[i+1]=number;
/**********FOUND**********/
exit;
}
if(number<a[0]) a[0]=number;
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个字符进行排序(降序)。
提示:插入法排序的思路是:先对数组的头两个元素进行排序,
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]);
{
printf("Write File Error");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%d",&i[n]);
}
sort(i,10);
for(n=0;n<10;n++)
fprintf(OUT,"%d\n",i[n]);
fclose(IN);
fclose(OUT);
}
inti,j,k,t;
{
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];
inti;
printf("\nEntera string: ");gets( a);
fun(a ,strlen(a));
printf("\nThestring: ");puts(a);
}
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];
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);
for(i=0;i<16;i++)
printf("%3d",a[i]);
printf("\n\n");
sort(a,16);
for(i=0;i<16;i++)
printf("%3d",a[i]);
yzj();
getch();
}
yzj()
{
FILE *IN,*OUT;
intn;
inti[10];
into;
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);
}
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>
{
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];
/**********FOUND**********/
scanf("%d",&number)
printf("The original array:\n");
for(i=0;i<N1;i++)
printf("%5d",a[i]);
printf("\n");
/**********FOUND**********/
fclose(fp);
}
【程序填空】
功能:以下程序是用选择法对10个整数按升序排序。
/***********SPACE***********/
【?】
main()
{
inti,j,k,t,a[N];
for(i=0;i<=N1;i++)
scanf("%d",&a[i]);
for(i=0;i<N1;i++)
printf("\n%s",s);
getch();
}
【程序设计】
功能:编写函数fun用比较法对主程序中用户输入的具有10
个数据的数组a按由大到小排序,并在主程序中输出
排序结果。
#include "stdio.h"
intfun(intarray[],intn)
{
/**********Program**********/
a[j+1]=t;
}
【程序设计】
功能:编写函数用选择排序法对数组中的数据进行从小到
大的排序。
#include <stdlib.h>
#include<stdio.h>
void sort(inta[],intn)
{
/**********Program**********/
/********** End **********/
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);
#include<stdio.h>
void sort(inta[],intn)
{
/**********Program**********/
/********** End **********/
}
main()
{
inta[16],i;
clrscr();
for(i=0;i<16;i++)
a[i]=random(30)+15;
【程序改错】
功能:在一个已按升序排列的数组中插入一个数,插入后,数
组元素仍按升序排列。
#define N 11
main()
{
inti,j,t,number,a[N]={1,2,4,6,8,9,12,15,149,156};
printf("please enter an integer to insert in the array:\n");
#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**********/
#include<string.h>
#include<stdlib.h>
main()
{
FILE *fp;
chart,str[100],str1[100];intn,i,j;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("can't open this file.\n");
yzj();
getch();
}
yzj()
{
FILE *IN,*OUT;
intn;
inti[10];
into;
IN=fopen("in.datLeabharlann Baidu,"r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
a[k]=t;
}
}
printf("output the sorted array:\n");
for(i=0;i<=N1;i++)
printf("%5d",a[i]);
printf("\n");
}
【程序改错】
功能:用插入排序法将n个字符进行排序(降序)。
提示:插入法排序的思路是:先对数组的头两个元素进行排序,
}
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]);
printf("The result array:\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
}
【程序填空】
功能:从键盘上输入一个字符串,将该字符串升序排列后输出到
文件test.txt中,然后从该文件读出字符串并显示出来。
#include<stdio.h>
然后根据前两个元素的情况插入第三个元素,再插入第
四个元素…)。
#define N 81
#include <stdio.h>
#include <string.h>
void fun(char *aa,intn)
{
/**********FOUND**********/
inta ,b;t;
for( a = 1; a<n; a++)
然后根据前两个元素的情况插入第三个元素,再插入第
四个元素…)。
#define N 81
#include <stdio.h>
#include <string.h>
void fun(char *aa,intn)
{
/**********FOUND**********/
inta ,b;t;
for( a = 1; a<n; a++)
printf("%4d",a[i]);
printf("\n");
yzj();
getch();
}
yzj()
{
FILE *IN,*OUT;
intn;
inti[10];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
exit(0);
}
printf("input a string:\n"); gets(str);
/***********SPACE***********/
【?】;
/***********SPACE***********/
for(i=0;【?】;i++)
for(j=0;j<ni1;j++)
/***********SPACE***********/
{
/***********SPACE***********/
【?】;
/***********SPACE***********/
for(j=i+1;【?】;j++)
if(a[j]<a[k]) k=j;
/***********SPACE***********/
if(【?】)
{
t=a[i];
a[i]=a[k];
/********** End **********/
}
main()
{
inta[10],i;
printf("请输入数组a中的十个数:\n");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
fun(a,10);
printf("由大到小的排序结果是:\n");
for (i=0;i<10;i++)
相关文档
最新文档