什么数?整数 还是浮点数?数的大小长度有没有限制?
下面的代码供参考
import javamathBigDecimal;
import javautilArrayList;
import javautilList;
import javautilScanner;
import orgapachecommonslangStringUtils;
/
<p>
单纯测试方法
<p>
desc:
@version 10
/
public class CleanTest {
public static void main(String[] args) {
// 要输入的数字个数,本例中可改为3
int numCount = 5;
// 使用bigdecimal,性能会有一定损失,可以接收较大范围,可接收整形与浮点数同时输入排序
List<BigDecimal> listBigDecimal = new ArrayList<BigDecimal>();
Systemoutprintln("本程序将对输入的" + numCount + "个数进行排序并输出");
Scanner scanIn = new Scanner(Systemin);
String lineStr = "";
while (listBigDecimalsize() < numCount) {
Systemoutprintln("请输入第" + (listBigDecimalsize() + 1) + "个数:");
lineStr = scanInnext();
if (StringUtilsisNotEmpty(lineStr)) {
try {
insertSort(listBigDecimal, new BigDecimal(lineStr));
} catch (Exception e) {
Systemoutprintln("数字格式不正确,请重新输入");
}
}
}
Systemoutprintln(listBigDecimal);
}
/
插入排序
@param listBig
@param insertVal
/
static void insertSort(List<BigDecimal> listBig, BigDecimal insertVal) {
if (null != listBig) {
for (int i = 0; i < listBigsize(); i++) {
if (insertValcompareTo(listBigget(i)) >= 0) {
listBigadd(i, insertVal);
return;
}
}
listBigadd(insertVal);
}
}
}
因为在if后面的括号是if的,for后面是for的在给你一个这道题的函数版做法
#include <stdioh>
int bigmax(int a, int b) 最大值
{
if (a>b)
return a;
else
return b;
}
int littlemax (int a,int b)最小值
{
if (a>b)
return b;
else
return a;
}
int main ()
{
int a,b,c,d;
scanf ("%d%d%d",&a,&b,&c);
printf ("%d", littlemax(littlemax(a,b),c));
printf (" ");
printf ("%d",a+b+c- littlemax(littlemax(a,b),c)-bigmax(bigmax(a,b),c));
printf (" ");
printf ("%d",bigmax(bigmax(a,b),c));
printf (" ");
return 0;
}
希望我的代码能帮到你
楼上说的申明 其实不用的 只要你的子函数 在主函数之前就行了 我对你的错误进行了修改,并且稍加注释 你可以看看 不懂的可以追问 希望可以采纳 谢谢 另外 鉴于你的数组 定为了10 所以我改成了 排序十个数 再就是你的n要是要 自己输入 请自己写个scanf ,a[10]中10太小了,怎么任意呢?
#include<stdioh>
void myfun(int a[10], int n)
{
int i=0, t=0;
int k,end;//end 不赋值?
end=10;//end 也可以用n代替
//k=0; //这个其实没必要
for(k=0; k<n-1; k++)
{
//k=0;//k 你从来都不变
for(i=k+1; i<end; i++)//在i循环里面还用i 。永远都循环不完了 看你的思想应该是选择排序 每次选最小的 我给你改改
//i不需要从0开始 因为每次都选了最小的后来就不用比较了
{
if(a[k]>a[i])//你这里k等于多少?
{//你这里没有加括号 那么除了 t=a[i];其余的每次都会执行 你说会不会死翘翘
// k=i;//这个i是有歧义的
t=a[i];//你这里的交换我倒是看懂了
a[i]=a[k];
a[k]=t;
}
}
}
}
main()
{
int i=0;int a[10],n;
n=10;//1
for(i=0;i<n;i++)
scanf("%d",&a[i]);//2
for(i=0;i<n;i++)
printf("%d ",a[i]);//数字之后加个空格隔开
putchar('\n');//换行
myfun(a,n);//你到底是排 n个数 还是6个数 我把 6 改为n了
for(i=0;i<n;i++)
printf("%d ",a[i]);
putchar('\n');
}
版本 2
程序集 窗口程序集1
程序集变量 分割的数字, 整数型, , "0"
子程序 整数排列
参数 大小排列, 逻辑型
局部变量 计次, 整数型
清除数组 (分割的数字) ' 先把数组归零以清除上次的数据
计次循环首 (取文本长度 (编辑框1内容), 计次)
加入成员 (分割的数字, 到数值 (取文本中间 (编辑框1内容, 计次, 1))) ' 把文本数字分割并存入数组
计次循环尾 ()
编辑框1内容 = “”
判断开始 (大小排列 = 真)
数组排序 (分割的数字, 假) ' 排序
默认
数组排序 (分割的数字, )
判断结束
计次循环首 (取数组成员数 (分割的数字), 计次)
编辑框1内容 = 编辑框1内容 + 到文本 (分割的数字 [计次]) ' 显示
计次循环尾 ()
子程序 _从大到小_被单击
整数排列 (真)
子程序 _从小到大_被单击
整数排列 (假)
其实从思想上来说,就是一个排序的思路问题。
排序的方法有很多。
说2个最简单的(设让结果从小到大排列)
方法一
假设10个数
把第一个依次与他后面的比较,如果比后面的大,就把位子换下,这样当第一个看完后面9个数后第一个数就变成最小的数了
再把第二个依次与后面8个比较,让第二个变成9个中最小的
以此类推,每次都拿还没比出顺序的第一个数和它后面的每个数比较
这样当第九个数拿出来和第十个数比完后,整个数列就变成从小到大排列的了
方法二(叫做冒泡)
依次拿第一个数和第二个比,第二个和第三个比,凡是前面的数比后面的数大的话就换位子,当第九个和第十个比完后,第十个位子永远是最大的数。然后再对前9个数再做一次这个事情,那第九个数就变9个里最大的了,直到最后一次第一个数和第二个数比完(此时后面8个数已经按序排列了)后,整个数列就变成了从小到大排列了
以上就是关于编写一个java程序,任意输入三个数,能按大小排列出全部的内容,包括:编写一个java程序,任意输入三个数,能按大小排列出、C语言程序:从小到大排列数、求任意数组的数大小排列,C语言程序我的错了运行不了。。大师看看、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)