| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1500 人关注过本帖
标题:冒泡排序法,函数部分出错了
只看楼主 加入收藏
基米西
Rank: 2
来 自:四川成都
等 级:论坛游民
帖 子:15
专家分:11
注 册:2016-9-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
冒泡排序法,函数部分出错了
目的是想把输入数组里的整数元素从小到大排序,但输出的最终结果和输入一样,函数没起作用

#include<stdio.h>
#define N 50
void fun(int s[],int k)
{
int min,i,j,t;
min=s[0];
for(i=0;i<k;i++)
{
  for(j=i+1;j<k;j++)
 {
   if(min>s[j])
   {
    t=min;
    min=s[j];
    s[j]=t;
   }
 }
}
}

main()
{int s[N],i,k;
k=0;
printf("please enter numbers:");
for(i=0;i<N;i++)
{
scanf("%d",&s[i]);               
k++;                              
if(getchar()=='\n')break;
}
printf("the original array is:");
for(i=0;i<k;i++)
printf("%d ",s[i]);
printf("\n");
fun(s,k);
printf("the result is:");
for(i=0;i<k;i++)
printf("%d",s[i]);
}

搜索更多相关主题的帖子: original include numbers please 元素 
2016-09-20 15:50
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:0 
#include<stdio.h>
#define N 50
void fun(int s[],int k)------------------->//这是一个没有返回值(void)的fun函数
{
int min,i,j,t;
min=s[0];
for(i=0;i<k;i++)
{
  for(j=i+1;j<k;j++)
 {
   if(min>s[j])
   {
    t=min;
    min=s[j];
    s[j]=t;
   }
 }
}
}

main()
{int s[N],i,k;
k=0;
printf("please enter numbers:");
for(i=0;i<N;i++)
{
scanf("%d",&s[i]);               
k++;                              
if(getchar()=='\n')break;
}
printf("the original array is:");
for(i=0;i<k;i++)
printf("%d ",s[i]);
printf("\n");

fun(s,k);-------------------------->//这里将两个实参传递给fun()函数。接着往上看。。。
printf("the result is:");
for(i=0;i<k;i++)
printf("%d",s[i]);
}


普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-09-20 16:04
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
你试试把输出语句也移到自定义函数里呢
2016-09-20 16:20
基米西
Rank: 2
来 自:四川成都
等 级:论坛游民
帖 子:15
专家分:11
注 册:2016-9-15
收藏
得分:0 
回复 2楼 lanke711
我想通过函数把改动后的数组传回去,应该怎么改...求教,我怎么改都没反应额

Always want to learn.
2016-09-20 16:50
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
for(i=0;i<k;i++)
 {
   for(j=i+1;j<k;j++)
  {
    if(min>s[j])
    {
     t=min;
     min=s[j];
     s[j]=t;
    }
  }
 }
你的排序程序不正确
2016-09-20 18:14
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:20 
for(i=0;i<k;i++)
  {
    for(j=i;j<k;j++)
   {
     if(s[i]>s[j])
     {
      t=s[i];
      s[i]=s[j];
      s[j]=t;
     }
   }
  }
2016-09-20 18:15
基米西
Rank: 2
来 自:四川成都
等 级:论坛游民
帖 子:15
专家分:11
注 册:2016-9-15
收藏
得分:0 
回复 6楼 ehszt
谢谢,今天卡了一天终于解决了

[此贴子已经被作者于2016-9-20 22:07编辑过]


Always want to learn.
2016-09-20 22:06
快速回复:冒泡排序法,函数部分出错了
数据加载中...
 
   



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

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