| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 776 人关注过本帖
标题:*(a+j)是啥,指针也没定义呀。
只看楼主 加入收藏
m3440426898
Rank: 2
等 级:论坛游民
帖 子:41
专家分:17
注 册:2022-2-3
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:2 
*(a+j)是啥,指针也没定义呀。
给定程序中,程序的功能是:用选择法按升序对a数组中的数排序。
请填空。
选择法排序方法:用这种方法排序,5个数需要排序4轮。第0轮:
从a[0]~a[4]中找出最小数,将其与a[0]对调。第1轮:从a[1]~
a[4]中找出最小数,将其与a[1]对调……第3轮:从a[3]~a[4]中
找出最小数,将其与a[3]对调。至此排序完成。
输入:45 15 6 32 89 76 19 29 37 64
输出:6 15 19 29 32 37 45 64 76 89
# include  <stdio.h>
void main( )
{
    int  a[10],i,j,k,t;
    for(i=0;i<10;i++)
        scanf("%d",a+i);
    for(i=0;i<9;i++)
    {
        k=i;
        for(j=i+1;j<10;j++)
            if(*(a+j)【1】*(a+k))
                k=j;
            t=*(a+i);
            *(a+i)=*(a+k);
            【2】;
    }
    for(i=0;i<10;i++)
        printf("%d ",【3】);
}
搜索更多相关主题的帖子: for 指针 排序 i++ 小数 
2022-02-26 10:24
m3440426898
Rank: 2
等 级:论坛游民
帖 子:41
专家分:17
注 册:2022-2-3
收藏
得分:0 
我知道填什么了,第一个是比较,第二个交换值,第三个输出数组。
有没有大佬给详细解释一下这个程序每一条语句。
2022-02-26 10:31
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:27
帖 子:107
专家分:675
注 册:2021-7-1
收藏
得分:10 
供参考:
程序代码:
#include <stdio.h>
void main( )
{
    int  a[10],i,j,k,t;
    for(i=0;i<10;i++)
        scanf("%d",a+i);
    for(i=0;i<9;i++)
    {
        k=i;
        for(j=i+1;j<10;j++)
            if(*(a+j) < *(a+k)) //if(*(a+j)【1】*(a+k)) 等价于:if(a[j] < a[k])
                k=j;
        t=*(a+i);    //等价于: t  = a[i];
        *(a+i)=*(a+k);//a[i] = a[k];
        *(a+k)=t;  //【2】; a[k] = t;
    }
    for(i=0;i<10;i++)
        printf("%d ",a[i]);//【3】 *(a+i)
    system("pause");
}

//*(a+j) 等价于:a[j]
//数组 a[10] ,数组名 a 表示数组 a[] 的首地址 &a[0] ,类似指针的作用。
2022-02-26 17:28
快速回复:*(a+j)是啥,指针也没定义呀。
数据加载中...
 
   



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

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