C语言,调用函数!!从大到小输出?
发布网友
发布时间:2023-07-13 16:20
我来回答
共5个回答
热心网友
时间:2023-10-04 14:41
// 3个数由大到小输出.cpp : Implementation of DLL Exports.
#include"stdio.h"
void main()
{
int x,y,z,t;
printf("请输入x,y,z3个数:\n");
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;} /*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;} /*交换z,y的值*/
printf("small to big :%d %d %d\n",x,y,z);
printf("big to small:%d %d %d\n",z,y,x);
getch();
}
我这里有编好的你比着改吧。
/* #include "stdio.h"
main()
{ int a,b,c,d,sam,sam1,sum,sum1,e,f,g,h;
printf("请输入a,b,c,d,四个数:\n");
scanf("%d%d%d%d%d,&a,&b,&c,&d");
if(a>b)
{sam=a;sam1=b;
else
sam=b;sam1=a;}
else if(c>d)
{sum=c;sum1=d;
else
sum=d;sum1=c;}
else if(sam>sum)
{e=sam;f=sum;
else
e=sum;f=sam;}
else if(sam1<sum1)
{h=sam1;g=sum;
else
h=sum1;g=sam1;}
if(f>g)
printf("%d%d%d%d",e,f,g,h);
else
printf("%d%d%d%d",e,g,f,h);
getch();
}*/
#include "stdio.h" //29
main()
{ int a,b,c,d,sam,sam1,sum,sum1,e,f,g,h;
printf("请输入a,b,c,d,四个数:\n");
scanf("%d%d%d%d%d",&a,&b,&c,&d);
if(a>b)
{sam=a;sam1=b;}
else
{sam=b;sam1=a;}
if(c>d)
{sum=c;sum1=d;}
else
{sum=d;sum1=c;}
if(sam>sum)
{e=sam;g=sum;}
else //44
{e=sum;g=sam;}
if(sam1<sum1)
{h=sam1;g=sum;}
else
{h=sum1;g=sam1;}
if(f>g)
{printf("%d%d%d%d",e,f,g,h);}
else
printf("%d%d%d%d",e,g,f,h);
getch();
这个是4个数的。希望对你有所帮助!
热心网友
时间:2023-10-04 14:41
函数调用时,如果参数是变量名那只能单向传递,即主调函数传送到被调函数,不能回传。把变量名变成变量地址,就可以实现双向传递! 但是你如果不用指针,不用地址,还可以直接在调用函数中输出结果,如下面修改后的程序:
#include <stdio.h>
void main()
{
int f(int p1,int p2,int p3);
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
f(a,b,c);}
int f(int p1,int p2,int 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("%d%d%d",p1,p2,p3);
}
热心网友
时间:2023-10-04 14:41
函数调用时,如果是变量那只能单向传递,即主调函数传送到被调函数,不能回传。只能把变量变成变量地址,终于就可以实现双向传递!
热心网友
时间:2023-10-04 14:42
你用的p1,p2,p3,p11,p22跳出函数运行到主函数里就没有了。要么设置静态变量,要么像下面这样
#include <stdio.h>
void main()
{
void f(int p1,int p2,int p3);
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
f(a,b,c);
}
void f(int p1,int p2,int 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("%d%d%d\n",p1,p2,p3);
}
你最后面输出的a b c 就是原来的a b c 你不管怎么运行函数
不用指针指向 a b c,那他们的值就不会变。
热心网友
时间:2023-10-04 14:43
#include <stdio.h>
void main()
{
void f(int &p1,int &p2,int &p3);
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
f(a,b,c);
printf("%d%d%d",a,b,c);
}
void f(int &p1,int &p2,int &p3)
{
void R(int &p11,int &p22);
if(p1<p2) R(p1,p2);
if(p1<p3) R(p1,p3);
if(p2<p3) R(p2,p3);
}
void R(int &p11,int &p22)
{
int t;
t=p11;
p11=p22;
p22=t;
}
简单修改了一下。
另外,int型函数必须返回一个值
c语言实现函数,将正整数的每一位从高到低顺序输出,每-位占-行,不有多...
include <stdio.h> int i=0;int dig[];void digit(int);int main(){ int num;int j;i=0;printf("请输入一个正整数:\n");scanf("%d",num);digit(num);for(j=i;j>=0;j--){ printf("%d\n",dig[j]);} return 0;} void digit(int num){ dig[i++]=num%10;num = num...
C语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出
include<stdio.h> int main(void){int a,b,c,t;printf("请输入三个数");scanf("%d%d%d",&a,&b,&c);if(a<b){t=a;a=b;b=t;} if(b<c){t=b;b=c;c=t;} if(a
C语言的编程题:输入三个整数,按从大到小的顺序输出
include <stdio.h> main(){ int x,y,z,t;scanf("%d%d%d",&x,&y,&z);if (x<y){t=x;x=y;y=t;} if(x<z){t=z;z=x;x=t;} if(y<z){t=y;y=z;z=t;} printf("%d %d %d\n",x,y,z);}
c语言,输入三个不同的数字,按从从大到小输出
1、参考2楼,修改两个语法错误:scanf("%d,%d,d%",&x,&y,&z);应该是:scanf("%d,%d,%d",&x,&y,&z);输出语句:printf("输入的三个数字由大到小排列为:%d,%d,%d",z,y,x);2、算法太乱,应该先对x,y,z排序,排序的算法是两两相比较,如果前者大就交换,最后得到x,y,z是从小到...
c语言程序在主函数中输入3个数,调用函数找出最大和最小的,并在主函数...
include<stdio.h> void main(){ int max(int x,int y,int z);int min(int x,int y,int z) ;int a,b,d,c;scanf("%d,%d,%d",&a,&b,&c);d=max(a,b,c);printf("max=%d\n",d);d=min(a,b,c);printf("min=%d\n",d);} int max(int x,int y,int z){ int q;i...
c语言任意输入5个数,并按从大到小顺序输出
可以采用以下的代码进行计算:include <stdio.h> include <stdlib.h> int main(){ int a[5];int i,j,k;for(i=0;i<=4;i++){ scanf("%d",&a[i]);} for(i=0;i<=4;i++){ for(j=0;j<=4;j++){ if(a[i]>a[j]){ k=a[i]; a[i]=a[j]; a[j]=k;} } } pri...
用C语言编程序,调用随机函数,产生30个100到200之间的随机整数,按由大到...
C程序:include <stdio.h> include include <stdlib.h> void main(void){ int i, j, k;int arr[30];int temp;srand(time(NULL));/* get random number */ for(i=0; i<30; i++){ temp = rand() % 201;if(temp < 100)temp += 100;arr[i] = temp;} /* sort */ for(...
C语言如何用调用函数的方法把5个数字从小到大排序?
2、第10行输出*point_1和*point_2的值,其中的“*”表示“指向”。*point_1表示“指针变量point_1所指向的变量”,也就是变量a。*point_2表示“指针变量point_2所指向的变量”,也就是变量b。从运行结果来看他们也就是100和10.3、程序中有两处出现*point_1和*point_2,但是两者含义不同。
C语言 输入10个整数,用函数编程将其中最大数与最小数的位置互换然后输出...
include <stdio.h>int main(){int i,t,n,maxi=0,mini=0,a[10]; n=10; for(i=0;i<n;i++) {scanf("%d",&a[i]); if(a[i]>a[maxi])maxi=i; else if(a[i]
C语言:输入5个数,用调用函数的方法,从小到大排序 用简单点的
printf("%.2f ",a[i]);printf("\n");} 或者三个数的。void sort(int *a, int *b, int *c){ int tmp;if(*a>*b){ tmp = *b;b = *a;a = tmp;} if(*a>*c){ tmp = *c;c = *a;a = tmp;} if(*b>*c){ tmp = *c;c = *b;b = tmp;} return;} ...