问题补充说明:我程序编译连接都没问题运行候 输入字符串车报错哪错呢各位神给看看#include "stdafx.h"#include "stdio.h"#include "string.h"void order(char *p1,char *p2,char *p3){ char *t; if(strcmp(p1,p2)>0) {t=p1;p1=p2;p2=t;} if(strcmp(p3,p1)>0) {t=p1;p1=p3;p3=t;}if(strcmp(p3,p2)>0) {t=p2;p2=p3;p3=t;}}int main(int argc, char* argv[]){char *p1=NULL,*p2=NULL,*p3=NULL; scanf("%s\n",p1); fflush(stdin); scanf("%s\n",p2); fflush(stdin); scanf("%s\n",p3); fflush(stdin);order(p1,p2,p3); printf("%s\n%s\n%s\n",p1,p2,p3);return 0;}

可以使用三个数组,倍伯式或者是一个二维数组来存储字符串,同时定义一个指针数组,指向三个字符串的首地址 。然后对指针数组进行排序 。
代码如下打想念需审弱学:
#include <stdio.h>
#include <string.h>
int main()
{
char buf[3][100];
c360问答har *p[3] = {儿会观得定语矛buf[0],buf[1], buf[2]};
【C语言 用指针方法 输入3个字符串 按由小到大顺序输出】int i,j;
f西盾叫能防夫握旧乎细从or(i = 0; i < 3; i ++)
scanf("%s", p[i]);//输入三个字符串 。
for(i = 0; i < 2; i ++)概//排序 。
for(j = i+1; j < 3; j ++)
{
if(strcmp(p[i], p[j]) > 0)
{
char * t = p[i];
p[i] = p[j];
p[j] = t;
}
}
for(i = 0; i < 3; i ++)
printf("%s\n", p[i]);//输出排序后的三个字符串 。
}
猜你喜欢
- 如何用u盘装win7系统 怎么用u盘装win7系统
- 值得回购的5个实惠护肤品牌子 什么护肤品好用效果好
- 不怕火还能使用火的动物盘点 什么动物不怕火
- 常用来自氮肥中含氮量最高的是什么? 含氮约百分之几?
- 为什么全款房不用交维修基金
- 土豆播种期有四种肥料不适宜使用 种土豆最忌讳什么肥料
- 养花盆里加这3种底肥长得旺盛 花卉底肥用什么肥料好
- 铅酸电池和锂电池哪个耐用 锂电池和铅酸电池充电器通用吗
- 汽车上的t-box用什么电池 车载t-box是什么东西
- 家用买哪个更划算 华为ax3和ax3pro区别
