题要求将输入的任意3个整数从小到大输出。
输入格式:
输入在一行中给出3个整数,其间以空格分隔。
输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。
输入样例:
4 2 8
输出样例:
2->4->8
1.第一种方法:子函数,暴力排出来,哈哈哈,上代码
#include<stdio.h>
int compare(int x,int y,int z)\\比较函数,其实就是把可能出现的几种情况都列了出来
{
if(x<y)
{
if(x<z)
{
printf("%d->",x);
if(z<y)
printf("%d->%d",z,y);
else
printf("%d->%d",y,z);
}
else
printf("%d->",z);
if(x<y)
printf("%d->%d",x,y);
else
printf("%d->%d",y,x);
}
else
{
if(y<z)
{
printf("%d->",y);
if(x<z)
printf("%d->%d",x,z);
else
printf("%d->%d",z,x);
}
else
{
printf("%d->",z);
if(x<y)
printf("%d->%d",x,y);
else
printf("%d->%d",y,x);
}
}
}
int main()
{
int x,y,z;
scanf("%d %d %d",&x,&y,&z);
compare(x,y,z);
return 0;
}
2.将x,y,z默认为从小到大,如果不是就交换,最多交换三次就会满足题中的条件。
#include<stdio.h>
int main()
{
int x,y,z;
int m;
scanf("%d %d %d",&x,&y,&z);
if(x>y)
{
m=x;
x=y;
y=m;
}
if(x>z)
{
m=x;
x=z;
z=m;
}
if(y>z)
{
m=y;
y=z;
z=m;
}
printf("%d->%d->%d",x,y,z);
return 0;
}
学习c语言做题的一些心得:
1.两数互换时使用临时变量
2.累加的容器初值为0,累乘的容器初值为1,统计数据需要使用计数器。
3.以输入回车为终止条件,无初始条件步长:while((c=getchar())!-’\n’),这真的是非常好用的的一条语句,可以用在输入一连串字符,回车结束,但是需要一个字符一个字符处理的时候
4.计算机不关心什么是初始条件、终止条件、步长和循环,只按顺序求解,寻找规律变化应符合题意或逻辑习惯。
5.除法运算求精确值、运算结果超过整型取值范围,需要使用浮点型变量。
6.使用c自带的数学函数,需要带头文件:<math.h>
7.退出循环的重要标志是循环控制变量第一次超过终止条件
8.注意break和continue的区别。
break可以使流程跳出switch结构,继续执行switch语句下面的一个语句
break可以跳出所在的循环体,接着执行循环体下面的语句
continue语句可以结束循环体的本次循环,即跳过循环体中下面尚为执行的语句,直接执行下一次循环的条件判断。
区别:continue只结束本次循环,break结束整个循环
continue只限用于循环语句,break用于循环语句和switch语句
9.使用循环的嵌套,内嵌循环循环一周,外层循环步长加一。
外层循环步长加一之后,内嵌循环进入之前,应将内嵌循环的循环控制变量还原初值
换行可以以内嵌循环一周、统计打印个数等为标志
打印矩形,外层循环控制变量控制行,内嵌循环控制变量控制列,对角线内外控制变量相等。