冒泡排序:输入n个字符串,对其进行冒泡排序,使其按从小到大顺序输出

不用指针

第1个回答  2018-12-30
字符串指针数组为基础,进行冒泡排序,参考代码如下
#include<stdio.h>
#include<string.h>
#define N 5
#define L 200
void sort(char *p[], int n)
{
int i,j;
char *t;
for(i=0;i<n-1;++i)
for(j=0;j<n-i-1;++j)
if(strcmp(p[j],p[j+1])>0){
t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
}
int main()
{
char str[N][L],*p[N];
int i,j;
for(i=0;i<N;++i){
scanf("%s",str[i]);
p[i]=str[i];
}
sort(p,N);
printf("排序后:\n");
for(i=0;i<N;++i)
printf("%s\n",p[i]);
return 0;
}追答

追问

不用指针怎么做呢,指针还没学到

追答

反复strcpy()

追问

大佬,还是有点懵,可否不用指针呢,我想看详细过程,谢谢啦

本回答被网友采纳

冒泡排序:输入n个字符串,对其进行冒泡排序,使其按从小到大顺序输出
printf("排序后:\\n");for(i=0;i<N;++i)printf("%s\\n",p[i]);return 0;}

C语言编程:将输入的N个整数采用冒泡排序按照从小到大的顺序排列并且输出...
void BubbleSort(int L[]) { \/\/ 对顺序表L作冒泡排序 int i,j,fini = 0;for (i = 1; i < n && !fini; i++) { fini = 1;for (j = 1; j <= n-i; j++)if (L[j] > L[j+1]) { L[0] = L[j];L[j] = L[j+1];L[j+1] = L[0];fini = 0;} } } ...

编程,输入n个数(n从键盘输入,且不大于20),先用冒泡法按从小到大的...
首先通过 `input()` 函数获取用户输入的 `n` 值,然后通过循环和 `input()` 函数获取 `n` 个数,并存储在列表 `nums` 中。接着,使用两层循环实现冒泡排序,将列表 `nums` 中的数按从小到大的顺序排列。最后,使用 `print()` 函数输出排序后的结果。

用起泡法给输入的字符按ASCN码排序从小到大输出 C语言
1.首先关于冒泡法有几点说明:.若数组中有N个数据,则第一论比较与交换的次数应该是N-1,第2轮比较与交换的次数为N-2……第i轮比较与交换的次数为N-i,……一共进行(n-1)轮的比较与交换。2.数组的第一个元素的下标是0.即第一个元素为a[0],最后一个元素应该是a[n-1]3.循环控制变量i...

编写函数用冒泡排序法对数组中的n个数据进行从小到大的排序。
1、新建一个163.php。2、输入php网页的结构(<?php?>)。3、声明PHP与浏览器交互的文件类型和编码。4、使用 array() 函数定义一个$numbers数组。5、使用 sort() 函数对数组 $numbers 中的元素进行排序。6、使用 print_r() 函数,输出排序后的数组。7、运行网页,在浏览器中输出排序后的数组。

输入n名同学的英语成绩,n≤1000。采用冒泡排序法实现将成绩按照由低到...
include "stdio.h"int main(int argv,char *argc[]){char f[1000];int n,i,j,k;printf("Input n(int 0<n<=1000)...\\nn=");if(scanf("%d",&n)!=1 || n<1 || n>1000){\/\/输入n,超出0<n<=1000则退出printf("Input of crossing the line, exit...\\n");return 0;}...

内容:输入n个字符串,对这n个字符串进行排序(按升序),输出排序后的字符串...
2、运用定义数组,把10个数进行选择排序,#include<stdio.h>,#define max 10,int main(){ int i; int j; int temp; int a[max];。3、 printf("input 10num:\\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } for(i=0;i<10;i++){ printf("%d\\t",a[i]); }...

c语言中从键盘输入N个字符串,将字符串按从小到大的顺序排列并输出
define N 10 int main(){char str[N][100]; int i,j; for(i = 0; i < N; i ++) scanf("%s",str[i]); for(i = 0; i < N-1; i ++) { for(j = i+1; j < N; j ++){ if(strcmp(str[i],str[j])>0) { char temp[100]; strcpy(temp,str[i]); strcpy(...

给出n个数,你要将这n个数从小到大排序输出
冒泡法 define NUM n\/*n为数据个数*\/ void main()int a[NUM],i,j,t;scanf("%d",&a[i]);\/*输入数据,用tab键隔开*\/ for(i=0;i<NUM;i++)procedure sort(l,r: longint);var i,j,x,y: longint;begin i:=l; j:=r; x:=a[(l+r) div 2];repeat while a[i]<x do ...

vb怎么按“冒泡排序”按钮实现从小到大排序,并输出在个文本框中
If a(j) > a(j + 1) Then temp = a(j + 1) a(j + 1) = a(j) a(j) = temp End If Next j Next i 上面是冒泡排序法

相似回答