用指针实现三个整数的排序·谢谢!

作者&投稿:播葛 (若有异议请与网页底部的电邮联系)
用指针实现排序~

指针m一直指向数组a的第一个元素,这意味着在进行排序时,你是用第一个元素作为交换数据时的中间变量的,当然就会出错了。
m = a; m = &a[0];

#includeint sort(int *a,int *b,int *c){int d;if(*a>*b){d=*a;*a=*b;*b=d;}if(*a>*c){d=*a;*a=*c;*c=d;}if(*b>*c){d=*b;*b=*c;*c=d;}printf("这个三个数从小到大排列是:%d,%d,%d
",a,b,c);}void main(){int a,b,c,*x,*y,*z;printf("输入3个整数:");scanf("%d,%d,%d",&a,&b,&c);x=&a;y=&b;z=&c;sort(x,y,z);}好好学学指针吧

1、双击打开桌面上的C-Free5编程软件。

2、打开编程软件以后,创建一个新页面来编写程序。

3、写入代码。

4、按F5进行编译。或者点击上方的小三角。

5、编译时,如果有错误会进行报错,大家需要进行检查修改。如果没有错误,会出现【0个错误,0个警告】。

6、编译完成后进行运行,按照提示依次输入三个整数。

7、输入完成后再点击回车键,三个数就会被从小到大依次排序。



#include<stdio.h>

voidchange(int*x,int*y)

inttemp;

temp=*x;

*x=*y;

*y=temp;

voidexchange(int*q1,int*q2,int*q3)

if(*q1<*q2)change(q1,q2);

if(*q1<*q3)change(q1,q3);

if(*q2<*q3)change(q2,q3);

void main()

inta,b,c,*p1,*p2,*p3;

printf("pleaseenterthenumbers:");

scanf("%d,%d,%d",&a,&b,&c);

p1=&a;

p2=&b;

p3=&c;

exchange(p1,p2,p3);

printf("\nmax=%d,mid=%d,min=%d\n",a,b,c);

system("pause");

运行结果   

 

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;

如果我们要打印的数的位数如果超过我们设定m则原样输出;如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。



#include<stdio.h>
void main()
{
void swap(int *p1, int *p2);
int a,b,c;
int *p1,*p2,*p3;
printf("请输入三个整数:\n");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
if(*p1>*p2)
{
swap(p1,p2);
}
if(*p1>*p3)
{
swap(p1,p3);
}
if(*p2>*p3)
{
swap(p2,p3);
}
printf("按从大到小的顺序为:%d,%d,%d\n",*p1,*p2,*p3);
}

void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}

int a,b,c;
int *p1 = &a;
int *p2 = &b;
int *p3 = &c;
if( *p1 < *p2 )
{
int *p = p1;
p1 = p2;
p2 = p;
}
if( *p1 < *p3 )
{
int *p = p1;
p1 = p3;
p3 = p;
}

if( *p2 < *p3 )
{
int *p = p2;
p2 = p3;
p3 = p;
}


输入3个整数要求设计3个指针变量p1p2p3使p1指向3个数的最大者, p2指向...
!= e)return c;else return 0;} 我刚学习C ,程序挺乱的,但可以实现,很累啊,强烈要求给分 呵呵 但我这里没有错误阿,我用visual c++ 运行的阿,真的没错误,你先关闭所有的工作区间然后再重新建个工程(倒数第3项)和新的文件(c++ sourse file),然后再运行,有时候会和别的函数重复 ...

从键盘输入3个整数,将3个数中的最大数和最小数交换,要求用指针作为函数...
tmp=*max; *max=*min; *min=tmp;}int main(){ int a,b,c; printf("请输入3个整数,中间用逗号隔开:"); scanf("%d,%d,%d",&a,&b,&c); swap(&a,&b,&c); printf("交换最大值和最小值后的结果为:%d,%d,%d\\n",a,b,c);...

求大神帮忙啊~C语言编程从键盘输入三个整数存入数组中,操作指针使数组...
首先,输入三个数,你的数组开才开了2,数组开小了!a[3]其次,scanf ("%d", &a[i]);这里要使用取地址符号才能进行输入 再次,你加的else ;这些语句都没有用,直接删除 include<stdio.h>int main(){int *p,a[3],temp,i;p=a;printf("请输入三个数字");for(i=0;i<=2;i++)scanf...

c语言输入3个整数,输出最大的数是多少。
这段代码首先包含了`stdio.h`头文件以便使用标准输入输出函数。然后定义了`main`函数,在函数中声明了三个整型变量`num1`、`num2`和`num3`用于存储用户输入的三个整数。使用``函数提示用户输入三个整数,并用`scanf`函数读取这三个整数。接着,通过比较这三个数,使用`if`语句找出并存储最大的数...

用C语言编输入一个3位的正整数,分别输出它的个位,十位,百位数字_百度...
2.C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。3.不同的变量类型可以用结构体(struct)组合在一起。4.只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。5.部份的变量类型可以转换,例如整型和字符型变量。6.通过指针(pointer)...

什么是C语言的指针,能不能举例说明一下啊?大侠帮帮忙!!
指针指的类型是什么?该指针指向了哪里? 指针本身所占据的内存区 指针本身占了多大的内存?你只要用函数sizeof(指针的类型)测一下就知道了。在32位平台里,指针本身占据了4个字节的长度。 指针本身占据的内存这个概念在判断一个指针表达式是否是左值时很有用。 指针的算术运算 指针可以加上或减去一个整数。指针...

从键盘输入3个整数,要求设3个指针变量p1,p2,p3?
void main(){ int v[3];int *p1=&v[0];int *p2=&v[1];int &p3=&v[2];scanf("%d%d%d",p1,p2,p3);int t;if(*p1<*p2){ t=*p1;*p1=*p2;*p2=t;} if(*p1<*p3){t=*p1;*p1=*p3;*p3=t;} if(*p2<*p3){t=*p2;*p2=*p3;*p3=t;} printf("\\n%d,%d,%d",*p...

...将它们按由小到大的顺序输出,要求用函数,指针实现。
2013-06-21 C++编程,要求:输入3个字符串,按由小到大的顺序输出。 5 2013-01-23 输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个... 2012-03-16 C语言 用指针方法 输入3个字符串 按由小到大顺序输出 47 2014-12-24 用指针方法编写程序,输入三个字符串,按由小到大的顺序输出,要...

C++输入3个整数,按由小到大的顺序输出。编写一函数,用指针变量作为参数...
void sort(int *b,int m){ int t,i,j;for (j=0;j<m;j++)for (i=0;i<m-j;i++){ if (*(b+i)>*(b+i+1)){ t=*(b+i);(b+i)=*(b+i+1);(b+i+1)=t;} } for (i=0;i<m;i++){ cout<<*(b+i)<<" ";} } int main(){ int a[3],i;for (i=0;...

输入三个整数,按从小到大顺序输出(C++)
程序已经过测试 include <iostream> using namespace std;void chang(int& ,int&);int main(){ int a,b,c;a=2;b=3;c=1;\/*cout<<"请您输入三个整数:"<<endl;cin>>a;cin>>b;cin>>c;*\/ chang(a,b);chang(a,c);chang(b,c);cout<<a<<" "<<b<<" "<<c<<endl;return ...

无为县17386108855: 用指针实现三个整数的排序·谢谢! -
拔王伊特: #include void main() { void swap(int *p1, int *p2); int a,b,c; int *p1,*p2,*p3; printf("请输入三个整数:\n"); scanf("%d,%d,%d",&a,&b,&c); p1=&a; p2=&b; p3=&c; if(*p1>*p2) { swap(p1,p2); } if(*p1>*p3) { swap(p1,p3); } if(*p2>*p3) { swap(p2,p3...

无为县17386108855: 输入三个整数,按从小到大的顺序输出.要求用指针实现. -
拔王伊特: 你这是由大到小排序, 这两行代码错误:for(j=0;j<3;j++) for(i=0;i<3-j;i++)超出数组范围 修改为for(j=0;j<2;j++) for(i=0;i<2-j;i++)还有就是把后面那比较的代码if(a[i]<a[i+1]) 的 < 号改为 > 就是由小到大排序了修改后程序如下: #include<stdio.h> ...

无为县17386108855: c语言:编写一个函数名字为sort,完成对三个整数从小到大排序,要求用指针实现. -
拔王伊特: 修改通过了:#include<stdio.h>void sort(int *a,int *b,int *c) { int d; if(*a>*b) // a,b,c是指针,对其解引用如*a才是他们指向的值 {d=*a;*a=*b;*b=d;} if(*a>*c) {d=*a;*a=*c;*c=d;} if(*b>*c) {d=*b;*b=*c;*c=d;} printf("这个三个数从小到大排列是:%d,%...

无为县17386108855: 用指针方法编写一个程序,输入3个整数,将它们按由小到大的顺序输出 -
拔王伊特: #include void main() { int a,b,c,x; int *pa,*pb,*pc; pa=&a;//这里的指针前的星号去掉就行了 pb=&b;// pc=&c;//三个都一样 printf("请输入3个整数\n"); scanf("%d%d%d",pa,pb,pc); if(*pa>*pb) { x=*pa; *pa=*pb; *pb=x; } if(*pa>*pc) { x=*pa; *pa=*pc; *pc=x; } if(*pb>*pc) { x=*pb; *pb=*pc; *pc=x; } printf("这3个数由小到大的排列顺序为%d,%d,%d",*pa,*pb,*pc); }

无为县17386108855: 输入3个整数,按由小到大的顺序输出. 使用指针. -
拔王伊特: #include<stdio.h> #include<stdlib.h>#ifndef _CDEMO #define _CDEMO #define _ARRAY_SIZE 3 // 假定输入3个元素 #define _INT_SIZE sizeof(int) #endif /*_CDEMO*/typedef int INT;void bubble_sort(INT **p, int size_t){ // 冒泡排序for (INT i = ...

无为县17386108855: 输入三个整数,按由小到大的顺序输出.要求用指针实现 -
拔王伊特: 写了一个,请参考:) #include <stdio.h> #include <string.h> void sort(int *a, int *b, int *c) { int t = 0; if(*a > *b) { t = *a; *a = *b; *b = t; } if (*a > *c) { t = *a; *a = *c; *c = t; } if (*b > *c) { t = *b; *b = *c; *c = t; } } int main() { int a = 0, b = 0, c = 0; scanf("%d...

无为县17386108855: 用指针的方式实现从键盘输入3个整数,按从小到大的顺序输出.. -
拔王伊特: #include<stdio.h> void main() { int i,temp,a[3],*p=a; for (i=0;i<3;i++) scanf("%d",p+i); if(*p>*(p+1)) {temp=*p;*p=*(p+1);*(p+1)=temp;} if(*(p+1)>*(p+2)) {temp=*(p+1);*(p+1)=*(p+2);*(p+2)=temp;} for (i=0;i<3;i++) printf("%d ",*(p+i)); }

无为县17386108855: 如何用指针和函数实现三个数的排序,谢了 -
拔王伊特: #include <stdio.h> int my_sort(int *arr, int n) { int i, j; int tmp = 0; for (i=0; i<(n-1); i++) { for (j=i+1; j<n; j++) { if (*(arr+j) < *(arr+i)) { tmp = *(arr+j); *(arr+j) = *(arr+i); *(arr+i) = tmp; } } } return(*arr); } void main() { int arr[3] ; int *p = arr; printf("请输入三个...

无为县17386108855: 从键盘输入3个整数,按从小到大的顺序输出. 要有文字说明 用指针的方式实现 -
拔王伊特: #include <stdio.h> void pChar(int *a,int *b,int *c) { int t; if(*a>*b) {t=*a;*a=*b;*b=t;} if(*a>*c) {t=*a;*a=*c;*c=t;} if(*b>*c) {t=*b;*b=*c;*c=t;} } int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); pChar(&a,&b,&c); printf("***********\n"); printf("%d,%2d,%2d",a,b,c); return 0; }

无为县17386108855: 使用两个指针变量,对输入的三个数排序 -
拔王伊特: 输入三个整数,按照由小到大的顺序输出. 由于需要使用指针,使用指针就牵扯到.对两个数进行交换.需要用两个指针对值进行修改.三个数如果使用排序算法,则需要对进行三次比较才能将三个数进行交换.代码如下:#include <stdio.h> ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网