| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1172 人关注过本帖
标题:要疯了,指针问题求高手帮忙。
只看楼主 加入收藏
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:17 
要疯了,指针问题求高手帮忙。
题目:向一个数组(10个元素)中输入数据,要求把数组中最大的元素与第一个元素互换,最小的一个元素与最后一个
      元素互换。
问题现象:如果顺序输入“1-10”,则按照原样输出,如果输入其它的数据,结果正常。
#include "stdio.h"
void main()
{
    int a[10]={0};
    int i,*p1;
    void k(int a[]);
    for(p1=a;p1<(&a[0]+10);p1++)
    {
    printf("please input nmuber \n");
    scanf("%d",p1);
    }
    p1=a;
    for(i=0;i<10;i++)
    printf("%5d",*p1++);
    k(a);
}
void k(int a[])
{
    int max,min,*p,*a_end,*m,*n,t;
    a_end=a+10;
    max=min=*a;
    m=n=a;
    for(p=a+1;p<a_end;p++)
    {
        if(max<*p)
        {
            max=*p;
            m=p;
        }
        if(min>*p)
        {
            min=*p;
            n=p;
        }
    }
    printf("\nmax=%d,min=%d\n",max,min);
    printf("\nmax=%d,min=%d\n",*m,*n);
    printf("\nmax=%0x,min=%0x\n",m,n);
    t=*m;*m=*a;*a=t;
    t=*n;*n=*(a+9);*(a+9)=t;
    for(t=0;t<10;t++)
    printf("%5d",a[t]);
}
谢谢。
搜索更多相关主题的帖子: 指针 
2010-03-03 00:43
韦春敢
Rank: 3Rank: 3
来 自:广西
等 级:论坛游侠
帖 子:91
专家分:142
注 册:2010-1-25
收藏
得分:0 
哈哈。有意思

哈哈
2010-03-03 10:54
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
收藏
得分:0 
指导下,谢谢。
2010-03-03 11:11
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
收藏
得分:0 
补充一点,在void k(int a[])
中添加
    printf("\n %d",sizeof(a));
得到的结果是4.
2010-03-03 11:14
fenzhi4297
Rank: 2
等 级:论坛游民
帖 子:34
专家分:13
注 册:2009-8-31
收藏
得分:0 
int a[10]={0};
    int i,*p1;
    void k(int a[]);<-----------------------------------你这 是申明 还是调用???  申明 位置不对 调用 格式 也不对啊
    for(p1=a;p1<(&a[0]+10);p1++)
2010-03-03 12:07
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
收藏
得分:0 
int a[10]={0};
    int i,*p1;
    void k(int a[]);<-----------------------------------你这 是申明 还是调用???  申明 位置不对 调用 格式 也不对啊
    for(p1=a;p1<(&a[0]+10);p1++)
————————————————
是申明啊,只是放的位置应该在定义前面,呵呵,以后注意。
但是调用的格式有什么问题?调用不会出现问题。
2010-03-03 12:59
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
不大会,还是等等会做的人。

c语言刚开一学期,就换开VB...
2010-03-03 13:05
zhuyunshen
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:212
专家分:455
注 册:2009-11-22
收藏
得分:0 
#include "stdio.h"
void main()
{
    int a[10]={0};
    int i,*p1;
    p1=a;
    void k(int a[]);
    for(p1=a;p1<(&a[0]+10);p1++)
    {
    printf("please input nmuber \n");
    scanf("%d",p1);
    }
    p1=a;
    for(i=0;i<10;i++)
    printf("%5d",*p1++);
    k(a);
}
void k(int a[])
{
    int max,min,*p,*a_end,*m,*n,t;
    a_end=a+10;
    max=min=*a;
    m=n=a;
    for(p=a+1;p<a_end;p++)
    {
        if(max<*p)
        {
            max=*p;
            m=p;
        }
        if(min>*p)
        {
            min=*p;
            n=p;
        }
    }
    printf("\nmax=%d,min=%d\n",max,min);
    printf("\nmax=%d,min=%d\n",*m,*n);
    printf("\nmax=%0x,min=%0x\n",m,n);
    t=*m;*m=*a;*a=t;
    t=*n;*n=*(a+9);*(a+9)=t;
    for(t=0;t<10;t++)
    printf("%5d",a[t]);
}
2010-03-03 13:10
飘在深圳
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2010-2-28
收藏
得分:0 
  
    int i,*p1;
    p1=a;---加个这干啥哟,编译都通不过。
    void k(int a[]);
    for(p1=a;p1<(&a[0]+10);p1++)
2010-03-03 13:36
Devon_Ye
Rank: 4
来 自:广东
等 级:业余侠客
帖 子:124
专家分:282
注 册:2010-1-7
收藏
得分:0 
    int a[10]={0};
    int i,*p1;
    void k(int a[]);
    for(p1=a;p1<(&a[0]+10);p1++)
    {
    printf("please input nmuber \n");
    scanf("%d",p1);

实参还没出来,调用功能函数,是无意义的。下面的代码供参考:
程序代码:
#include "stdio.h"
#include "conio.h"
main()
{
  int number[10];
  input(number);
  max_min(number);
  output(number);
  getch();
}
input(number)
int number[10];
{
  int i;
  for(i=0;i<9;i++)
    scanf("%d,",&number[i]);
  scanf("%d",&number[9]);
}
max_min(array)
int array[10];
{
  int *max,*min,k,l;
  int *p,*arr_end;
  arr_end=array+10;
  max=min=array;
  for(p=array+1;p<arr_end;p++)
    if(*p>*max) max=p;
    else if(*p<*min) min=p;
  k=*max;
  l=*min;
  *p=array[0];array[0]=l;l=*p;
  *p=array[9];array[9]=k;k=*p;
  return;
}
output(array)
int array[10];
{
  int *p;
  for(p=array;p<array+9;p++)
    printf("%d,",*p);
  printf("%d\n",array[9]);
}
2010-03-03 15:39
快速回复:要疯了,指针问题求高手帮忙。
数据加载中...
 
   



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

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