标题:[指针] 实在是不好意思了,我又来了!指针真的很让人很头疼~~
只看楼主
C梦天下
Rank: 2
等 级:论坛游民
帖 子:53
专家分:38
注 册:2011-4-10
结帖率:57.14%
已结贴  问题点数:20 回复次数:18 
[指针] 实在是不好意思了,我又来了!指针真的很让人很头疼~~
本以为在纸上调试过了
开开心心写完的代码,结果一上机调试,就是这样那样的麻烦!
心情实在是不爽~~ 纠结死了
我恨指针~~
程序代码:
/*题目,有一个5*5的矩阵,要求将4个最小的放在四个角上,最大的放在中间,也就是‘12’的位置,然后输出 */
#include "stdio.h"
#include "stdlib.h"
int main()
{
    void change(int *);
    int i,j=1,*p;
    p=(int *)malloc(sizeof(int)*25);
    if(NULL==p) return 0;
    printf("请输入数组的各个元素:");
    for(i=0;i<25;i++)
    {
        printf("请输入a[%d]:",i+1);
        scanf("%d",p+i);
    }
    change(p);
    printf("改变之后的数组为  ");
    for(i=0;i<25;i++)
    {
        printf("a[%d]:",i+1);
        printf("%d",*(p+i));
        j++;
        if(j%5==0)
        {
            printf("\n");
            j=1;
        }
    }
    free(p);
    return 0;
}
void change(int *p)
{
    int j,t;
    int min,max;
    min=0;
    max=0;
     for(j=1;j<25;j++)   /*find the max and min */
     {
         if(*(p+min)>*(p+j))
             min=j;
         if(*(p+max)<*(p+j))
             max=j;
     }
     t=*(p+min);       /*change min and max*/
     *(p+min)=*p;
     *p=t;
     t=*(p+max);
     *(p+max)=*(p+12);
     *(p+12)=t;
     min=1;
     for(j=1;j<25;j++) 
         if(*(p+min)>*(p+j))
             min=j;
    t=*(p+min);
    *(p+min)=*(p+4);
    *(p+4)=t;
    min=1;
    for(j=1;j<25;j++)
    {
        if(j==4||j==1)
            continue;
        else if(*(p+min)>*(p+j))
            min=j;
    }
    t=*(p+min);
    *(p+min)=*(p+20);
    *(p+20)=t;
    min=1;
    for(j=1;j<25;j++)
    {
        if(j==4||j==20||j==1)
            continue ;
        else if(*(p+min)>*(p+j))
            min=j;
    }
    t=*(p+min);
    *(p+min)=*(p+24);
    *(p+24)=t;
}

     


[ 本帖最后由 C梦天下 于 2011-4-13 20:06 编辑 ]
搜索更多相关主题的帖子: 就是这样 心情 
2011-04-13 19:07
C梦天下
Rank: 2
等 级:论坛游民
帖 子:53
专家分:38
注 册:2011-4-10
得分:0 

人品不行~
只能人工
2011-04-13 19:14
C梦天下
Rank: 2
等 级:论坛游民
帖 子:53
专家分:38
注 册:2011-4-10
得分:0 
不至于吧
 没人理会带星星的东东么?

2011-04-13 19:52
njkido
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:224
专家分:1184
注 册:2011-3-8
得分:0 
if(j==4||j==20||j==)
2011-04-13 19:56
C梦天下
Rank: 2
等 级:论坛游民
帖 子:53
专家分:38
注 册:2011-4-10
得分:0 
回复 4楼 njkido
那个地方是复制的时候一个疏忽~~
不好意思,没养成良好的习惯~
2011-04-13 20:07
C梦天下
Rank: 2
等 级:论坛游民
帖 子:53
专家分:38
注 册:2011-4-10
得分:0 

继续。。
2011-04-13 21:01
C梦天下
Rank: 2
等 级:论坛游民
帖 子:53
专家分:38
注 册:2011-4-10
得分:0 

继续,我就不相信没有好心人了
2011-04-13 21:10
C梦天下
Rank: 2
等 级:论坛游民
帖 子:53
专家分:38
注 册:2011-4-10
得分:0 

。。
2011-04-13 21:21
王立帅
Rank: 3Rank: 3
来 自:山东淄博
等 级:论坛游侠
帖 子:61
专家分:160
注 册:2011-4-4
得分:20 
能先对其一次排序再进行赋值么

一个人走
2011-04-13 21:26
C梦天下
Rank: 2
等 级:论坛游民
帖 子:53
专家分:38
注 册:2011-4-10
得分:0 
回复 9楼 王立帅
这个不是排序~
2011-04-13 21:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-336555-1-1.html




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

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