| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 319 人关注过本帖
标题:数组指针查错
只看楼主 加入收藏
woshimaodun
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2009-11-4
结帖率:0
收藏
已结贴  问题点数:5 回复次数:2 
数组指针查错
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

#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]);
}
搜索更多相关主题的帖子: 指针 
2009-11-06 09:15
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:2 
#include "stdio.h"
#include "conio.h"
#define N 10
int input(int number[N])
{
  int i;
  for(i=0;i<N;i++)
    scanf("%d",&number[i]);
  return 0;
 }
int max_min(int array[N])
{
  int *max,*min,k,l;
  int *p,*arr_end;
  arr_end=array+N;
  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]=k;k=*p;
  *p=array[N-1];array[N-1]=l;l=*p;
  return 0;
}
int output(int array[N])
{
  int *p;
  for(p=array;p<array+N;p++)
    printf("%3d",*p);
}
main()
{
  int number[N];
  input(number);
  max_min(number);
  output(number);
  getch();
}
同时注意子函数的声明调用
2009-11-06 13:06
陈大师
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:231
专家分:1038
注 册:2009-11-4
收藏
得分:2 
#include "stdio.h"
#include "conio.h"
#define N 10
int input(int number[N])
{
  int i;
  for(i=0;i<N;i++)
    scanf("%d",&number[i]);
  return 0;
}
int max_min(int array[N])
{
  int *max,*min,*k,*l;
  int *p,*arr_end;
  arr_end=array+N;
  max=min=array;
  for(p=array;p<arr_end;p++)
  {
    if(*p>*max) max=p,k=p;
    else if(*p<*min) min=p,l=p;
  
 
  }
  *p=array[0];
  array[0]=*max;
  *k=*p;
  *p=array[N-1];
  array[N-1]=*min;
  *l=*p;
  return 0;
}
void  output(int array[N])
{
  int *p;
  for(p=array;p<array+N;p++)
    printf("%3d",*p);
 
}
main()
{
  int number[N];
  input(number);
  max_min(number);
  output(number);
  getch();
}
楼上的似乎有错 多试几组数据就知道了····小弟改了一下 看看先·····
2009-11-06 19:15
快速回复:数组指针查错
数据加载中...
 
   



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

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