查看: 1029|回复: 14
|
一个基本的c程式!!!
[复制链接]
|
|
要user打三个integer,然后这三个号码要从小到大顺序排列!!!
Exampla:Input:3 2 1 Output:1 2 3
#include<stdio.h>
int main()
{
int a,b,c,n1,n2,n3;
printf("Input:");
scanf("%d%d%d",&a,&b,&c);
if(a<b&&a<c)
n1=a;
else if(b<c&&b<a)
n1=b;
else if(c<a&&c<b)
n1=c;
printf("%d%d%d",n1,n2,n3);
return 0;
}
这是我写的,第一最小的号码做到了,但是接下来的号码要怎样做呢?请各位高手们给我一些提示可以吗!!!
楼主的帖子难于解读,版主修饰采用 [√] 禁用 Smilies
[ 本帖最后由 白日梦 于 19-5-2006 09:11 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 19-5-2006 12:37 AM
|
显示全部楼层
if(a<b&&a<c)
n1=a;
else if(b<c&&b<a)
n1=b;
else if(c<a&&c<b)
n1=c;
上面你写的,照上面一直用“else if” 比对剩下的排列(大小)便可以了,只须更改 “<”。你上面写的只做了以下比对 3 次:
a b/c b/c
b a/c a/c
c a/b a/b
剩下
b/c a b/c
a/c b a/c
a/b c a/b
b/c b/c a
a/c a/c b
a/b a/b c |
|
|
|
|
|
|
|
发表于 19-5-2006 01:58 PM
|
显示全部楼层
我有点忘记C了,所以我用了C++写....
你自己改一点吧!
#include<iostream>
using namespace std;
int main()
{
int num1,num2,num3;
cout<<"Input\n";
cin>>num1>>num2>>num3;
cout<<"Ouput:\n";
if(num3<=num1&&num3<=num2)
cout<<num3<<endl;
else if(num2<num3&&num2<=num1)
cout<<num2<<endl;
else
cout<<num1<<endl;
if(num2<=num1&&num2>=num3)
cout<<num2<<endl;
else if(num3<=num1&&num3>=num2)
cout<<num3<<endl;
else
cout<<num1<<endl;
if(num1>=num2&&num1>=num3)
cout<<num1<<endl;
else if(num2>=num1&&num2>=num3)
cout<<num2<<endl;
else
cout<<num3<<endl;
return 0;
} |
|
|
|
|
|
|
|
楼主 |
发表于 19-5-2006 06:27 PM
|
显示全部楼层
原帖由 BillyG 于 19-5-2006 12:37 AM 发表
上面你写的,照上面一直用“else if” 比对剩下的排列(大小)便可以了,只须更改 “<”。你上面写的只做了以下比对 3 次:
a b/c b/c
b a/c a/c
c a/b a/b
剩下
b/c a b/c
a/c b a/c
a/b c a/ ...
如果不用这个方法?还有其他方法吗?毕竟这个方法有点笨和长!!如果题目要我们input十个数目的话,那不就要做很多次的比对吗? |
|
|
|
|
|
|
|
发表于 19-5-2006 07:28 PM
|
显示全部楼层
可以考慮把所有的數字放入 array 裡面
然後做 sort |
|
|
|
|
|
|
|
发表于 19-5-2006 07:29 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 19-5-2006 07:30 PM
|
显示全部楼层
原帖由 flashang 于 19-5-2006 07:28 PM 发表
可以考慮把所有的數字放入 array 裡面
然後做 sort
问题是我不会用array,还没学到啊!!!只学会if,else,for,while statement吧了!!! |
|
|
|
|
|
|
|
发表于 19-5-2006 08:34 PM
|
显示全部楼层
原帖由 ahjing 于 19-5-2006 07:30 PM 发表
问题是我不会用array,还没学到啊!!!只学会if,else,for,while statement吧了!!!
用if else 就可以了...
只是coding 比较长罢了..
|
|
|
|
|
|
|
|
发表于 19-5-2006 11:03 PM
|
显示全部楼层
用loop也可以做到,这个短很多,ahjing你应该是新纪元的学生 |
|
|
|
|
|
|
|
发表于 20-5-2006 05:49 AM
|
显示全部楼层
原帖由 ahjing 于 19-5-2006 06:27 PM 发表
如果不用这个方法?还有其他方法吗?毕竟这个方法有点笨和长!!如果题目要我们input十个数目的话,那不就要做很多次的比对吗?
有,如 basic 所说用 loop(建议用 while...do 或 do...while) 和 sort。如果输入数目不定的话,便需要用到 array 和把 array 做成 dynamic array。你有学到 array 了吗?
如果不想用 array 便只有用 pointer 了。
用 do/while loop 一直向 user 读取数字和 sort 直到 user 输入停止符号为止。
dnamic array ,只须在每次 user 输入新的数目后重新定义(declare)array size 便可,array 便会随着 loop 一直增大。
注:我学的是 C++ ,C 没学过如果有错请酌情更正。 |
|
|
|
|
|
|
|
发表于 22-5-2006 11:44 PM
|
显示全部楼层
原帖由 basic 于 19-5-2006 11:03 PM 发表
用loop也可以做到,这个短很多,ahjing你应该是新纪元的学生
新纪元的?嘿嘿。。。告诉wan ting姐。。。 |
|
|
|
|
|
|
|
发表于 22-5-2006 11:59 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 23-5-2006 01:10 AM
|
显示全部楼层
原帖由 qiyan 于 22-5-2006 11:44 PM 发表
新纪元的?嘿嘿。。。告诉wan ting姐。。。
hi..hi.. 刘老师还好吗? |
|
|
|
|
|
|
|
发表于 23-5-2006 10:24 AM
|
显示全部楼层
原帖由 jasonmun 于 23-5-2006 01:10 AM 发表
hi..hi.. 刘老师还好吗?
不知道,很久没见了。呵呵。。 |
|
|
|
|
|
|
|
发表于 29-5-2006 05:05 PM
|
显示全部楼层
c language 有 % 吗?
有就容易很多。
我是 c++ 使用者。。。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|