重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果按你的方法来比较大小,而且是7个数字,也就是a~g,你后面少比较了g,而且最后的j也未必是最大,需要改为:
成都创新互联专注于企业营销型网站建设、网站重做改版、市中网站定制设计、自适应品牌网站建设、H5页面制作、商城网站开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为市中等各大城市提供网站开发制作服务。
main()
{
int a,b,c,d,e,f,g,h,j;
scanf("%d%d%d%d%d%d%d",a,b,c,d,e,f,g); //这里读到g即可,后面没用的
a = max(a,b); //不能把g的值覆盖了,7个数,g还有存储数据呢
h = max(c,d);
j = max(e,f);
a = max(a,g); //还要和g比较
h = max(a,h); //接着还要比较a和h谁大
j = max(h,j); //这个才是最后结果,最大的一个
printf("abcdef da shi%d",j);
getch();
}
如果要比较大小的数比较多,建议使用数组存储,用个for循环就搞定了,如下:
#include stdio.h
void main()
{
int i, a[7], max = -32768;
for (i = 0; i 7; i++)
{
scanf ("%d", a[i]);
if (a[i] max) max = a[i];
}
printf ("max number is %d\n", max);
}
思路:如果利用if进行三个数a,b,b的排序,则先利用if判断a和b的大小,把小数赋值给a大数赋值给b,再利用if判断c和b的大小,把小数赋值给b大数赋值给c,则c就是最大值,最后比较a和b的大小,把小数赋值给a大数赋值给b,则a就是最小数,b是中间值,输出a,b,c就是排序后数。
参考代码:
#include stdio.h
int main()
{
int a,b,c,t;
scanf("%d%d%d",a,b,c);
if(ab)//前判断a和b的大小
{t=b;b=a;a=t;}
if(bc)//再判断b和c的大小
{t=b;b=c;c=t;}
if(ab)//最后判断a和b的大小
{t=a;a=b;b=t;}
printf("%d%d%d",a,b,c);
return 0;
}
/*
输出:
5 1 9
159
*/
#includestdio.h
#define N 100
void paixu(int *, int *, int);//声明函数
int main()
{
int a[N],c[N];
int i,n=0;
printf("请输入n个整数:");
for(i=0;;i++)
{
scanf("%d",a[i]);
n++;
if(getchar()=='\n')
break;
}
paixu(a, c, n);//调用函数,数组只需给出数组名
return 0;
}
void paixu(int a[N],int c[N], int n)
{
int i,j,s=0;
for(i=0;in;i++)
{
c[i]=0;
}
for(i=0;in;i++)
for(j=i+1;jn;j++)
{
if(a[i]==a[j])
c[i]=1;
}
for(i=0;in;i++)
{
s=1;
for(j=0;jn;j++)
{
if(c[j]==0a[i]a[j])
{
s++;
}
}
printf("%d ",s);
}
}
#include stdio.h
#include string.h
const int MAXLEN = 100;
void mysort(char s[][MAXLEN],int n) {
int i,j,k;
char tmp[MAXLEN];
for(i = 0; i n - 1; ++i) {
k = i;
for(j = i + 1; j n; ++j) {
if(strcmp(s[k],s[j]) 0) k = j;
}
if(i != k) {
strcpy(tmp,s[k]);
strcpy(s[k],s[i]);
strcpy(s[i],tmp);
}
}
}
int main() {
char s[5][MAXLEN];
int i;
for(i = 0; i 5; ++i) {
printf("输入字符串(%d/%d):",i + 1,5);
scanf("%s",s[i]);
}
printf("排序前:\n");
for(i = 0; i 5; ++i)
printf("%s\n",s[i]);
mysort(s,5);
printf("\n排序后:\n");
for(i = 0; i 5; ++i)
printf("%s\n",s[i]);
return 0;
}
#includestdio.h
void sort(float *a, int n)
{
int i,j,tmp;
for(i=0; in-1; i++)
for(j=0; jn-i-1; j++)
if(a[j]a[j+1])
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
void main()
{
float a[5];
int i;
printf("请输入五个数(逗号隔开):");
scanf("%f,%f,%f,%f,%f",a[0],a[1],a[2],a[3],a[4]);
sort(a,5);
printf("排序后为:");
for(i=0; i5; i++)
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;
}
扩展资料:
C语言中没有预置的sort函数。如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序。
一、可以编写自己的sort函数。
如下函数为将整型数组从小到大排序。void sort(int *a, int l)//a为数组地址,l为数组长度。
{
int i, j;
int v; //排序主体
for(i = 0; i l - 1; i ++)
for(j = i+1; j l; j ++)
{
if(a[i] a[j])//如前面的比后面的大,则交换。
{
v = a[i];
a[i] = a[j];
a[j] = v;
}
}
}
对于这样的自定义sort函数,可以按照定义的规范来调用。
二、C语言有自有的qsort函数。
功 能: 使用快速排序例程进行排序。头文件:stdlib.h
原型:
void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数:
1、待排序数组首地址。
2、数组中待排序元素数量。
3、各元素的占用空间大小4 指向函数的指针,用于确定排序的顺序,这个函数必须要自己写比较函数,即使要排序的元素是int,float一类的C语言基础类型。