精华内容
下载资源
问答
  • C语言程序设计教案 章节名称 指向数组指针1 授课类型 理论 实验 ?理实一体 实训 实习 班级 地点 周次 星期 节次 授课进度 ?符合 超前 滞后 ?符合 超前 滞后 ?符合 超前 滞后 教学目标 知识目标 1.理解指向数组元素...
  • C语言 用指针数组实现字符串的排序 #include <stdio.h> #include <stdlib.h> #include <string.h> void sort(char *s[], int len) { int i,j; char *temp = (char *)malloc(sizeof(char) * 30)...

    C语言 用指针数组实现字符串的排序

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void sort(char *s[], int len)
    {
        int i,j;
        char *temp = (char *)malloc(sizeof(char) * 30);
        for(i = 0; i < len-1; i++){
            for(j = 0; j < len-1-i; j++){
                if((strcmp(s[j], s[j+1])) > 0){
                    temp = s[j];
                    s[j] = s[j+1];
                    s[j+1] = temp;
                }
            }
        }
        free(temp);
    }
    
    int main()
    {
        int k;
        char *s[] = {"hello", "world", "abcde", "boy"};
        int size = sizeof(s)/sizeof(s[0]);
        
        sort(s ,size);
        for(k = 0; k < size; k++){
            printf("%s ",s[k]);
        }
        printf("\n");
        return 0;
    }
    
    展开全文
  • C语言用指针数组对字符串进行排序

    千次阅读 2015-01-30 10:59:12
    #include #include void quick_sort(char *pl[],int left,int right); void swap(char *v[],int i, int j); void writeline(char *pl[],int nlines); void main(){ ...主要练习指针字符数组的使用
    #include <stdio.h>
    #include <string.h>
    
    void quick_sort(char *pl[],int left,int right);
    
    void swap(char *v[],int i, int j);  
    
    void writeline(char *pl[],int nlines);
    
    
    void main(){
    
    	int nl = 3;
    
    	char *pline[3] = {"ccc","bbb","aaa"};
    
    	quick_sort(pline,0,nl - 1);
    
    	writeline(pline,nl);
    
    }
    
    void quick_sort(char *pl[],int left,int right){
    	
    	int mid;
    	void swap(char *v[],int i, int j);
    
    	if(left > right){
    		return;
    	}
    
    	swap(pl,left,(left + right)/2);
    	mid = left;
    	for(int i = left + 1;i <= right;i++){
    		if(strcmp(pl[i],pl[left]) < 0){
    			swap(pl,++mid,i);
    		}
    	}
    	swap(pl,left,mid);
    	quick_sort(pl,left,mid-1);
    	quick_sort(pl,mid+1,right);
    	
    }
    
    void swap(char *v[],int i, int j){
    
    	char *temp;
    
    	temp = v[j];
    	v[j] = v[i];
    	v[i] = temp;
    }
    
    void writeline(char *pl[],int nlines){
    	
    	while(nlines-- > 0){
    
    		printf("%s\n",*pl++);
    	}
    }
    
    主要练习指针字符数组的使用
    展开全文
  • C语言用函数指针实现数组排序

    千次阅读 2020-04-08 14:29:44
    最近看C语言有点烦,无论是自学的数据结构还是学校的指针课程,看着头都大了。 学校在PTA安排了此题,提交了多次...输入10个整数进行排序并输出,其中函数指针编写一个通用的排序函数,如果输入1,程序实现数据按...
    最近看C语言有点烦,无论是自学的数据结构还是学校的指针课程,看着头都大了。
    学校在PTA安排了此题,提交了多次总是报错,今天重新整理一遍且不按题目编程提示来写,提交终于正确。
    (其实是最后一个数字不能有空格,而题目没有说明白)
    将此题记录一下,说不定某些小伙伴需要呢?
    此题可能不是标准答案,仅作参考。
    

    输入10个整数进行排序并输出,其中用函数指针编写一个通用的排序函数,如果输入1,程序实现数据按升序排序;如果输入2,程序实现数据按降序。



    输入样例1:

    输入数据,之间用空格分隔
    输入样例1:
    2 3 4 9 10 8 7 6 5 1
    1

    输出样例1:
    输出格式数据格式如下,用一个空格分隔
    输出样例1:
    1 2 3 4 5 6 7 8 9 10


    输入样例2:

    2 3 4 9 10 8 7 6 5 1
    2

    输出样例2:
    10 9 8 7 6 5 4 3 2 1


    #include <stdio.h>
    
    void sort_1(int a[], int n)
    {
    	int i, j, * p = a;
    	for (i = 0; i < n - 1; i++)
    	{
    		for (j = i + 1; j < n; j++)
    		{
    			if (*(p + i) > * (p + j))	//升序
    			{
    				int t;
    				t = *(p + i);
    				*(p + i) = *(p + j);
    				*(p + j) = t;
    			}
    		}
    	}
    }
    
    void sort_2(int a[], int n)
    {
    	int i, j, * p = a;
    	for (i = 0; i < n - 1; i++)
    	{
    		for (j = i + 1; j < n; j++)
    		{
    			if (*(p + i) < * (p + j))		//降序
    			{
    				int t;
    				t = *(p + i);
    				*(p + i) = *(p + j);
    				*(p + j) = t;
    			}
    		}
    	}
    }
    
    int main()
    {
    	int i, j, a[10];
    	for (j = 0; j < 10; j++)
    		scanf("%d", &a[j]);
    	int flag;
    	scanf("%d", &flag);
    	switch (flag)
    	{
    	case 1:
    		sort_1(a, 10);
    		break;
    	case 2:
    		sort_2(a, 10);
    			break;
    	}
    	printf("%d", *(a));
    	for (i = 1; i < 10; i++)
    		printf(" %d", *(a + i));
    	return 0;
    }
    
    展开全文
  • 在住函数中输入10个等长的字符串,用用一个函数对它进行排序。(1.用scanf输入10个字符串,2,用指针数组对它进行排序)
  • #include <stdio.h> void Input();//输入 void Output();//正序输出 void reverseInput();...//正向排序 int main() { int n; scanf("%d",&n); float l[n]; //函数引用开始 Input(l,n);
    #include <stdio.h>
    void Input();//输入
    void Output();//正序输出
    void reverseInput();//逆序输入
    void reverseOutput();//逆序输出
    float average();//平均数
    void Sort();//正向排序
    
    int main() {
        int n;
        scanf("%d",&n);
        float l[n];
        //函数引用开始
        Input(l,n);
        Sort(l,n);
        Output(l,n);
        //函数引用结束
    }
    
    void Input(float* a,int m){
        for(int i = 0; i < m; i++){
            scanf("%f", a++);
        }
    }
    
    void Output(float* a0,int m){
        for(int i = 0; i < m; i++){
            printf("%.2f\n", *a0++);
        }
    }
    
    void reverseInput(float* b,int m){
        for(int i = m-1; i >= 0; i--){
            scanf("%f", b+i);
        }
    }
    
    void reverseOutput(float* b0,int m){
        for(int i = m-1; i >= 0; i--){
            printf("%.2f\n", *(b0+i));
        }
    }
    
    float average(float* c,int m){
        float ave=0;
        for(int i=0;i<m;i++){
            ave+=*(c+i);
        }
        return ave/m;
    }
    
    void Sort(float* d,int m){
        float ex;
        for(int i=m-1;i>=0;i--){
            for(int j=0;j<i;j++){
                if(*(d+j)>*(d+j+1)){
                    ex=*(d+j);
                    d[j]=*(d+j+1);
                    d[j+1]=ex;
                }
            }
        }
    }
    
    展开全文
  • #include #include int main(void) { char str[3][20],*p[3],temp[20]; int i,j;...// p[I]为指针变量.p[I]指向行地址。 gets(p[i]); } for(i=0;i for(j=i+1;j { if( strcmp(p[i],p[j])
  • 定义指针数组name,各字符串对它进行初始化(即把各字符串中的第1个字符的地址赋给指针数组的各个元素) 使用选择法进行排序,不移动字符串,而是改变指针数组各个元素的指向 代码如下: //对字符串排序,...
  • 定义指针数组name,各字符串对它进行初始化(即把各字符串中的第1个字符的地址赋给指针数组的各个元素) 使用选择法进行排序,不移动字符串,而是改变指针数组各个元素的指向 代码如下: //对字符串排序,...
  • 1.指向指针指针的方法对5个字符串排序并输出 #include #include int Sort(char **p) { int i,j;char *temp; for(i=0;i for(j=0;j if(strcmp(*(p+j),*(p+j+1))>0) { temp=*(p+j); *(p+j)=*(p+j+1); *...
  • c语言 指针对数组元素排序

    千次阅读 2020-04-26 20:30:27
    指针对数组元素排序程序实现 使用指针对数组元素进行由...p, 整型指针,表示需要排序数组 示例 1 输入 23 5 7 9 1 67 98 10 15 29 输出 1 5 7 9 10 15 23 29 67 98 示例 2 参数 72 49 18 62 98 输出 18 49 ...
  • //定义一个指针数组 //使每个指针指向一个结构体数组元素 for(i=0;i;i++) { p[i]=&stu[i]; } struct student *temp; //冒泡排序排序(从大到小) for(i=0;i;i++) {//遍历sum_stu-1轮 ...
  • 用指针知识将一个5×5矩阵的最大值放在中心,四角按从左到右,从上到下的顺序存放最小值。 编程提示:利用打擂台法求最大值和最小值。 输入样例: 输入数据,之间用空格分隔,例如 11 12 13 14 15 21 31 66 88 23 10 ...
  • 第一次在网上写技术文章,其实也不是什么复杂的技术,旨在...好,假定你已经了解了这两种排序法,这时老师布置了作业让你给二维数组排序,怎么办呢?于是你想到循环嵌套就是了。可是如果是三维数组呢?甚至说六位...
  • #include <stdio.h> int main() { int a[10], t; int i, j, max; printf("请输入10个数:\n"); for (i = 0; i <= 9; i=i+1) scanf_s("%d", a+i); for (j = 9; j >=0; j = j...
  • #include <stdio.h> int main() { int a[10], t; int i, j;printf("请输入10个数:\n"); for (i = 0; i < 10; i++) scanf_s("%d", a + i); for (j = 1; j < 10; j++) ...
  • 于是,想到了冒泡排序,如果能一个指针数组*p[5]指向这五个单词的数组,就可以利用冒泡排序指针数组内部进行排序了,*p[0] ~p[5]分别指向由小到大的单词数组首地址,最后按照p数组的排序进行输出就可以了。...
  • #include void reverse(const int *start,const int *end) { int *tstart = start; while (start != end) { int *left = tstart; while (left != end) ... *left = *l
  • 数组交换元素的时候,为什么必须用指针交换而不能用数组。 #include<stdio.h> void swap(int *p,int *q) { int temp; temp=*p; *p=*q; *q=temp; } void quick_sort(int a[],int l,int r)...
  • 然后在主函数中输出这10个已排好序的字符串,用指针数组完成。 */ #include #include #include void f50068(char **pp) { int a[10]={0}; for (int i=0;i;i++)//将字符串长度挨个存入数组a
  • 为了同数组冒泡排序进行区别,所以我们要指针实现冒泡排序 在一般的冒泡排序中 第一层for循环 规定要进行的趟数,循环条件为t&lt;数组长度-1 第二层循环 从第一个元素开始进行相邻元素的交换,直到...
  • 将若干个字符串按照字母顺序(由小到大)输出(用指针数组实现) 思路: 1.首先运用选择排序,写用来排字符串顺序的函数sort,注意:比较字母串字母的大小 用strcmp函数(C语言自带的),不能写成if(*name[i]>...
  • 【独立编程】程序功能:输入正整数 n(n≤10)和n个整数存入数组a,先冒泡排序法对数组a按降序排序,再输出排序后的a数组。 #include<stdio.h> int main(){ int a[10]; int i,n; void sort(int *p,int n...
  • 上文博主提到了对二维数组排序时compare函数的写法,但在具体实践中,我们会发现qsort失灵的情况,这就是因为针对不同的二维数组,compare函数中的常变量要不同的形式来写,如下: 针对直接开辟数组空间而非...
  • 复习C这个老祖宗,写了个简单的...喵喵喵问题复现平时都是把数组名当作特殊的指针的,所以开始是这么写的。int * maoPao(int *a);int main(){int a[5] = {21,3,12,9,5};int *p = maoPao(a);printf("%d %d %d %d...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 341
精华内容 136
关键字:

c语言用指针数组排序

c语言 订阅