c语言 输入3个字符串 按小到大的顺序输出(采用指针实现)

如题所述

第1个回答  2008-12-16
#include <stdio.h>
main()
{
int a[3],*p,i,t;
for(i=0;i<3;i++)
scanf("%d",&a[i]);
p=a;
if(*p>*(p+1))
{t=*p;*p=*(p+1);*(p+1)=t;}
if(*p>*(p+2))
{t=*p;*p=*(p+2);*(p+2)=t;}
if(*(p+1)>*(p+2))
{t=*(p+1);*(p+1)=*(p+2);*(p+2)=t;}
for(p=a;p<a+3;p++)
printf("%d ",*p);
}

WIN-TC 编译通过:输入:5 1 9
输出: 1 5 9本回答被网友采纳
第2个回答  2008-12-16
#include <stdio.h>

int main()
{
int ch[3]={0};
int *p,temp,i,j;
scanf("%d%d%d",&ch[0],&ch[1],&ch[2]);
p=ch;
for(j=0;j<3;j++)
for(i=0;i<2;i++)
{
if(*(p+i)>*(p+i+1))
{
temp=*(p+i);
*(p+i)=*(p+i+1);
*(p+i+1)=temp;
}
}
printf("%d %d %d\n",*p,*(p+1),*(p+2));
}

输入3个字符串,按由小到大的顺序输出。(用指针方法处理)
首先,程序会提示用户输入三个字符串,然后通过strcmp函数进行比较,如果前一个字符串大于后一个,就使用swap函数交换它们的位置,这个过程重复三次,确保三个字符串的顺序排列。swap函数的作用是临时存储一个字符串,然后将另一个字符串的内容复制到原位置,再将存储的内容复制回去,实现了字符串的交换。...

输入3个字符串,按由小到大的顺序输出。(用指针方法处理)
int main(){ char str1[10],str2[20],str0[10];printf("please input 3 strings");gets(str1);gets(str2);gets(str0);if(strcmp(str1,str2)>0)swap(str1,str2);\/*字符串比较函数*\/ if(strcmp(str2,str0)>0)swap(str2,str0);if(strcmp(str1,str0)>0)swap(str1,str0);p...

...输入3个字符串,按由小到大的顺序输出”用指针的方法,请高手指点...
printf("按由小到大的顺序输出为:\\n");printf("%s\\n%s\\n%s\\n",s1,s2,s3);} 注意我把string.h去掉了,所以这里的strcpy,strcmp都是我自己写的,而不是库函数了。输入字符串的时候,是以空白字符为结束输入的。回车,空格都可以。不用特意输入‘\\0';另外楼主的程序可以实现,我测试过了。...

输入三个字符串,按从小到大的顺序输出(用指针处理)
1、新建一个工程和.c文件 ,输入头文件和主函数。2、声明函数,初始化数组,定义变量类型。3、调用函数。char* str="sample";int len = strlen(str)+1;har copystr[256];memcpy(copystr,str,len)。4、定义调用函数。5、输入调用函数体。DWORD dwNum;dwNum= WideCharToMultiByte(CP_OEMCP,NULL,l...

c语言,求助大神! 从键盘上输入三个字符串,将这三个串从小到大排序。
C的字符串是用字符数组操作的,所以排序应该用指针数组完成,以避免字符串拷贝。由于只有3个字符串,用直接操作的办法而不用循环以避免不必要的开销;输入函数选用fgets,既可以方便地控制输入长度不越界,又能允许字符串中存在空格。代码如下:include "stdio.h"#include "string.h"int main(int argc,...

...将它们按由小到大的顺序输出,要求用函数,指针实现。
1、首先打开vc6.0, 新建一个项目。 2、添加头文件。 3、添加main函数。 4、定义x, y, z, t。 5、使用scanf给定义的变量赋值。 6、使用printf输入。 7、运行程序,可以看到输入的3个字符串,比较它们的大小,并将它们按由小到大的顺序输出。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐...

c语言 输入3个字符串按由小到大的顺序输出
\/ 字符串排序,从而实现字符串的有序应用。\/ include <stdio.h> include <string.h> \/\/strcmp(str1, str2);\/\/strcpy(str1, str2);void main(){ const int N = 30;char name[N][10]; \/\/存储名字 char temp[10]; \/\/中间量 int i, j, k, n;printf("请输入字符串数:"...

C语言如何从键盘输入任意3个数,按从小到大的顺序输出?
输入3个字符串,按从小到大顺序输出。 \/\/先用程序对三个数进行从小到大排序,然后修改程序#include<stdio.h>#include<string.h>int main(){void swap(char *pt1,char *pt2); char a[20],b[20],c[20]; char *p1,*p2,*p3; printf("请输入三个字符串:"); gets(a); gets(b); ...

C语言问题 输入三个字符串,按由小到大的顺序输出
1、修改代码 char temp[100];temp==q1;q1==q2;q2==temp;==换成=,=才是赋值运算符。2、换用其他方法 可以使用三个数组,或者是一个二维数组来存储字符串,同时定义一个指针数组,指向三个字符串的首地址,然后对指针数组进行排序。

输入三个字符串,按从小到大的顺便输出,请问用C语言怎么编译
void main(){ char *str[3],*temp;int i,j,k;printf("please input 3 strings:");for(i=0;i<3;i++){ str[i] = (char*)malloc(20*sizeof(char));scanf("%s",str[i]);} for(i=0;i<3;i++){ k=i;for(j=i+1;j<3;j++)if(strcmp(str[i],str[j])>0) k=j;if(...

相似回答