热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用指针为三个数排序

通过scanf函数输入三个整型数或三个字符型数据或字符串数据,并利用指针实现从大到小输出。
通过scanf函数输入三个整型数或三个字符型数据或字符串数据,并利用指针实现从大到小输出。

20 个解决方案

#1



//挺简单的.

#include
#include
#include
void   main() 

    char   *array[3],*temp; 
    int   i,j; 
    printf("请输入3个字符串:\n"); 
    for(i=0;i <3;i++) 
    {
        array[i]=(char *)malloc(sizeof(char)*10);
        gets(array[i]); 
    }
    printf("3个字符串从小到大排列的顺序为:\n");     
    for(i=0;i <2;i++) 
    {
        for(j=1;j <3;j++) 
        {            
            if(strcmp(array[i],array[j])> 0) 
            { 
                temp=array[i]; 
                array[i]=array[j]; 
                array[j]=temp; 
            } 
        }
    }
    
    for(i=0;i <3;i++) 
    puts(array[i]); 


#2


呵呵,谢谢,我在TC环境下调试没有通过,我要TC的。

#3


@_@ 
没发现哪不行.
直接copy过去就可以了

#4


我确实turbo c环境下调试通过,输入前后没变。你这里面有汉字,tc的可没有。

#5


...
你把汉字改成英文不就行了..
这程序是关于字符串排序的..

#6


chlaws兄弟需求明显没看清啊。

楼主是要用scanf接受字符的,哈哈

#7


我想要三个整型数、三个字符型数据、三个字符串数据的大小排列这三种情况同时在一个程序中实现。
请大家再帮帮忙

#8


lockhall 好像明显在埋汰我啊   

#9


chlaws 你这关于字符串排序的程序很不稳定   运行七八次才能实现一次  得改改

#10


VC下没问题,楼上的程序是按照由小到大输出的

#11


楼主典型自己不动脑筋类型

#12


估计又是来求作业的……

#13


#include
void main()
{ int a[3],i,j,tp;
printf("please input data:");
   for(i=0; i<3;   i++)
   scanf("%d",a[i]);
  for(i=0;i<3;i++)
   printf("%5d",a[i]);
      printf("\n");
     for(i=0;i<3;i++)
       for(j=i+1;j<2;i++)
     if(a[i] tp=a[i];
a[i]=a[j];
a[j]=tp;
}
for(i=0;i<3;i++)
printf("%5d",a[i]);
printf("\n");
}

#14


什么叫又是来求作业的啊   我才第一次呢    不过13楼的兄弟编译不能通过。谢谢

#15


13楼的应改为
#include  
void   main() 
{   int   a[3],i,j,tp; 
printf("please   input   data:"); 
      for(i=0;   i <3;       i++) 
      scanf("%d",a[i]); 
    for(i=0;i <3;i++) 
      printf("%5d",&a[i]);  //this is a address
            printf("\n"); 
          for(i=0;i <3;i++) 
              for(j=i+1;j <2;j++)  //there should be j++ to control this cycle
          if(a[i]  tp=a[i]; 
a[i]=a[j]; 
a[j]=tp; 

for(i=0;i <3;i++) 
printf("%5d",a[i]); 
printf("\n"); 
}

#16


楼上的编译时不管输入什么,总是出现
-38 -36 -34
1514 0 64

Null pointer assi ment
而且我要求是指针的,请大家再想想,谢谢

#17



#include  
#include  
#include  
#include 

#define STR_SIZE 20


void main(){
char *string1[3];
char *temp;
int i;
int j;

for(i=0; i<3; i++) {
string1[i]=(char *)malloc(sizeof(char)*STR_SIZE);
printf("input No.%d:",i+1);
scanf("%s",string1[i]);
}
printf("sort:\n");
    for(i=0;i <2;i++) {
        for(j=1;j <3;j++) {            
            if(strcmp(string1[i],string1[j])> 0) { 
                temp=string1[i]; 
                string1[i]=string1[j]; 
                string1[j]=temp; 
            } 
        }
    }
for(i=0;i <3;i++) {
printf("No.%d:%s\n",i+1,string1[i]);
free(string1[i]);
}
}


#18


13楼的修改如下,这个只是按照数据从大到小排序,1楼的或楼上的就可满足要求

#include      
void       main()   
{       
int       a[3],i,j,tp;   
printf("please       input       data:\n");   
    for(i=0;i<3;i++)   
    scanf("%d",&a[i]); //13楼中应该该在这里
    for(i=0;i<3;i++)   
    printf("%5d",a[i]);
    printf("\n");   
    for(i=0;i<2;i++) //i<2
for(j=i+1;j<3;j++)  //j<3 
{
if(a[i] tp=a[i];   
a[i]=a[j];   
a[j]=tp;   
}   
}
printf("the result is:\n");
for(i=0;i<3;i++)   
printf("%5d",a[i]);   
printf("\n");   
}

#19


我同意楼上的意见,一楼的就对,不过他忘了给出头文件,13楼的可能忘了给出scanf的地址符,再就是一楼的把顺序反了因为数组就是地址,所以符合要求按地址排序。

#20


还是没达到我的要求,请再想想

#21


  • 指针实现—三个数交换的排序

推荐阅读
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
author-avatar
森tu罗宝殿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有