| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 317 人关注过本帖
标题:一个c排序问题
只看楼主 加入收藏
joyful
Rank: 1
等 级:新手上路
帖 子:14
专家分:4
注 册:2012-9-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
一个c排序问题
#include    <stdio.h>
#define    N    7
void fun(int a[],int n)
{
int max,k,t,i,j;
for(i=0;i<n;i++)
for(j=i+1;j<n+1;j++)
{k=i;max=a[i];
if(max<a[j])
{max=a[j];k=j;  
}
if(k!=i)
{t=max;max=a[j];a[j]=t;
}
}
}
main()
{
int a[]={7,2,6,4,9,1,3},i;
printf("\nThe original data  :\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
fun(a,N);
 printf("\nThe data after moving  :\n");
   for (i=0; i<N; i++)  printf("%4d ", a[i]);
   printf("\n");
}求老师教育   不知哪里出问题了
搜索更多相关主题的帖子: fun include 
2012-09-09 17:20
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:15 
程序代码:
#include <stdio.h>
#define N 7
void fun(int a[],int n)
{
    int k,t,i,j;
    for (i=0;i<n-1;i++)
    {
        k=i;
        for (j=i+1;j<n;j++)
        {
           
            if(a[k]<a[j])
            {
                k=j; 
            }
           
        }
        if (k!=i)
        {
            t=a[k];
            a[k]=a[i];
            a[i]=t;
        }
    }
}
int main(void)
{
    int a[]={7,2,6,4,9,1,3},i;
    printf("\nThe original data  :\n");
    for (i=0;i<N;i++)
        printf("%4d",a[i]);
    printf("\n");
    fun(a,N);
    printf("\nThe data after moving  :\n");
    for (i=0; i<N; i++)
        printf("%4d ", a[i]);
    printf("\n");
    return 0;
}



你写的不对主要还是思路不清晰 还有 代码排版不行啊


[ 本帖最后由 zklhp 于 2012-9-9 19:18 编辑 ]
2012-09-09 19:17
justNPC
Rank: 5Rank: 5
等 级:职业侠客
帖 子:101
专家分:311
注 册:2012-8-11
收藏
得分:2 
这不是选择排序么
2012-09-09 19:40
joyful
Rank: 1
等 级:新手上路
帖 子:14
专家分:4
注 册:2012-9-5
收藏
得分:0 
回复 2楼 zklhp
是啊   我也觉得  写着写着就那样了 自己都看不清   不会排版  还需请教老师
2012-09-09 19:59
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
以下是引用joyful在2012-9-9 19:59:15的发言:

是啊   我也觉得  写着写着就那样了 自己都看不清   不会排版  还需请教老师

怎么排版没有固定的格式 但最起码的要求就是要根据语法语义来缩进

i = 0;
while (i)
{
    j = 0;
}

因为i=0和while是同一层的 所以对齐 而大括号里面的属于while附带的 所以缩进

if (i)
    printf("a");

不打括号 也得有缩进

好好看书上的代码怎么写的 琢磨琢磨 不要整的代码很难看


[ 本帖最后由 zklhp 于 2012-9-9 21:23 编辑 ]
2012-09-09 21:22
QQ007977
Rank: 2
等 级:论坛游民
帖 子:29
专家分:43
注 册:2012-9-9
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>

#define    N    7
void fun(int a[],int n)
{
int t,i,j;
for(i=0;i<n;i++)
   for(j=i+1;j<n;j++)
   {
         if(a[i]<a[j])
         {t=a[i];a[i]=a[j];a[j]=t;}
}
}
main()
{
int a[]={7,2,6,4,9,1,3},i;
printf("\nThe original data  :\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");

fun(a,N);

printf("\nThe data after moving  :\n");
   for (i=0; i<N; i++)  printf("%4d ", a[i]);
   printf("\n");
   system("pause");
}
2012-09-09 21:25
joyful
Rank: 1
等 级:新手上路
帖 子:14
专家分:4
注 册:2012-9-5
收藏
得分:0 
回复 6楼 QQ007977
你写的这个相对我那个效率比较低   复杂度太大  每比较一次都要交换位置
2012-09-10 20:01
快速回复:一个c排序问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034470 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved