标题:可以帮我看看这个程序哪里出错了么?是关于指针
只看楼主
编程小能倩
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2014-12-4
结帖率:50%
已结贴  问题点数:20 回复次数:6 
可以帮我看看这个程序哪里出错了么?是关于指针
/*找出任意个数中间的最大数和最小数,输出其位置和数值(提示:请使用动态内存管理函数结合课堂例程完成),该题命名为实验5-1.c*/
#include <stdio.h>
#include <stdlib.h>
int max(int *p,int n,int *pos1);
int min(int *p,int n,int *pos2);
main()
{
 int *a=NULL,i,n,max,min,position1,position2;
 printf("please enter the array size:");
 scanf("%d",&n);

 a=(int *)malloc(n*sizeof(int));

 printf("请输入数字:\n");
    for(i=0;i<n;i++)
 {
     scanf("%d",a+i);

 }
 max=max(a,n,&position1);
 min=min(a,n,&position2);
    printf("the max number is%d in the %d position\n",max,position1+1);
 printf("the min number is%d in the %d position\n",min,position2+1);

   free(a);         
}
int max(int *p,int n,int *position1)
{
 int max,i;
    max=p[0];
 *position1=0;
 for(i=0;i<n;i++)
 {
  if(*(p+i)>max)
  {max=p[i];
  *position1=i;}
 }
  
 return(max);
}   
int min(int *p,int n,int *position2)
{
 int min,i;
    min=p[0];
 *position2=0;
 for(i=0;i<n;i++)
 {
  if(*(p+i)<min)
  {min=p[i];
  *position2=i;}
 }
  
 return(min);
}
搜索更多相关主题的帖子: include please 动态 课堂 
2014-12-20 21:35
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
得分:5 
你的自定义函数名和变量名一样了,编译的时候没有报错吗?
2014-12-20 23:01
pkwangxinjun
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:170
注 册:2010-8-29
得分:5 
楼上说的就是关键
2014-12-21 19:44
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
得分:10 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
    int i = 0, n, *num = NULL, tmp = 0;
    srand((unsigned int)time(NULL));
    n = 5 + (int)(10.0 * rand() / (RAND_MAX + 1.0));
    printf("n = %d\n", n);
    num = malloc(n * sizeof(int));

    if(num == NULL) {
        printf("malloc Error!\n");
        exit(1);

    } else {
        while(i < n) {
            num[i] = 25 + (int)(155.0 * rand() / (RAND_MAX + 1.0));
            printf("%d ", num[i++]);
        }
    }

    printf("\n");

    while(i > 0) if(num[--i] > tmp) tmp = num[i];

    while(i < n) if(num[i++] == tmp) printf("MAX = %3d INDEX: %2d\n", tmp, i);

    while(i > 0) if(num[--i] < tmp) tmp = num[i];

    while(i < n) if(num[++i] == tmp) printf("MIN = %3d INDEX: %2d\n", tmp, i + 1);

    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2014-12-22 16:25
编程小能倩
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2014-12-4
得分:0 
可以用函数的方式帮忙修改么
2014-12-26 23:46
编程小能倩
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2014-12-4
得分:0 
回复 4楼 longwu9t
可以帮忙用函数的方式修改么
2014-12-26 23:46
编程小能倩
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2014-12-4
得分:0 
回复 2楼 soulmate1023
可以帮我再看看其他错误 然后修改修改么= =?
2014-12-26 23:47



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




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

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