#include void fun(int *a,int n) int i,j,k,t; for(i=0;i

haicong1000 2011-03-23 04:56:02
#include <stdio.h>
void fun(int *a,int n)
{
int i,j,k,t;
for(i=0;i<7;i+=2)
{
k=0;
for(j=0;j<7;j+=2)
if(a[j]>a[k])
k=j;
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
main()
{
int aa[10]={1,2,3,4,5,6,7},i;
fun(aa,7);
for(i=0;i<7;i++)
printf("%d",aa[i]);
}


求这道题目详细运行的过程!
...全文
5257 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
如此美丽的你 2011-03-24
  • 打赏
  • 举报
回复
还有k=0;应该改为k=i;
如此美丽的你 2011-03-24
  • 打赏
  • 举报
回复
该程序有错啊

#include <stdio.h>
void fun(int *a,int n)
{
int i,j,k,t;
for(i=0;i<7;i+=2)
{
k=0;
for(j=2;j<7;j+=2)
if(a[j]>a[k])
k=j;
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
main()
{
int aa[10]={1,2,3,4,5,6,7},i;
fun(aa,7);
for(i=0;i<7;i++)
printf("%d",aa[i]);
}




该程序的作用是将a[0],a[2],a[4],a[6]降序排列,a[1],a[3],a[5]不变;
排序方法为选择排序
所以输出结果为:7254361
碎碎念 2011-03-24
  • 打赏
  • 举报
回复
就是一个简单的排序,如果不明白..设置断点跑跑单步就行了,不过fun函数写的有点问题...

[Quote=引用楼主 haicong1000 的回复:]
C/C++ code
#include <stdio.h>
void fun(int *a,int n)
{
int i,j,k,t;
for(i=0;i<7;i+=2)//这里面应该是i<n,n是数组a的长度...
{
k=0;
for(j=0;j<7;j+=2)//改成i<n..
if(a[j]>a[k])
k=j;
t……
[/Quote]
heartgoon2010 2011-03-23
  • 打赏
  • 举报
回复
依次遍历数组a的0,2,4,6号元素(由i控制),每次将这4个元素中的最大值与当前元素交换
maoxing63570 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 haicong1000 的回复:]
有相关的教程或者工具吗?
[/Quote]
这个很简单,直接google 调试
http://www.vckbase.com/document/viewdoc/?id=924
haicong1000 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 maoxing63570 的回复:]
等待zhao前辈的“单步调试是每个程序员的必备技能”
[/Quote]
有相关的教程或者工具吗?
阳光宅男xxb 2011-03-23
  • 打赏
  • 举报
回复
技术和偶数的排序吗。
maoxing63570 2011-03-23
  • 打赏
  • 举报
回复
他for(i=0;i<7;i+=2)选用的是i+=2啊,怎么来的选择排序,除非他想这么做
pengzhixi 2011-03-23
  • 打赏
  • 举报
回复
google“选择排序”对比找问题。
無_1024 2011-03-23
  • 打赏
  • 举报
回复
简单的排序
masmaster 2011-03-23
  • 打赏
  • 举报
回复
偶数地址元素升序排列,奇数地址元素降序排列。
KID_coder 2011-03-23
  • 打赏
  • 举报
回复 1

#include <stdio.h>
void fun(int *a,int n)
{
int i,j,k,t; //i,j为循环变量,k为数据下标,t是temp,临时变量
for(i=0;i<7;i+=2)
{
k=0; //k在内循环中一开始设置为0
for(j=0;j<7;j+=2) //从0开始循环,每循环一次j+2
if(a[j]>a[k]) //找出最大的元素
k=j;
t=a[i]; //两个元素交换
a[i]=a[k];
a[k]=t;
}
}
main()
{
int aa[10]={1,2,3,4,5,6,7},i; //定义aa数组和变量i
fun(aa,7); //运行fun函数
for(i=0;i<7;i++) //用for循环打印出aa数组里面的所有元素
printf("%d",aa[i]);
}
昵称很不好取 2011-03-23
  • 打赏
  • 举报
回复
选择排序吧,google下,讲解很多
maoxing63570 2011-03-23
  • 打赏
  • 举报
回复
等待zhao前辈的“单步调试是每个程序员的必备技能”
bdmh 2011-03-23
  • 打赏
  • 举报
回复
好像是个排序,有什么详细运行过程,自己跟踪不都看清楚了吗

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧