注册 登录
编程论坛 C语言论坛

问大佬,能运行,但是输入数字比较时会显示程序错误,怎么回事

鱼头豆腐汤 发布于 2021-01-06 09:30, 1436 次点击
#include<stdio.h>
void niubi(int *m)
{
    int *n,i=1;
    *n=*m;
    for(i=1;i<10;i++)
    {
    if(*m<*(m+i))
        *m=*(m+i);
    else if(*n>*(m+i))
        *n=*(m+i);
    }
    printf("最大值为%d,最小值为%d",*m,*n);
}
void main()
{
    int a[10],i=0;
    printf("请输入十个数");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    niubi(a);
}
2 回复
#2
纯蓝之刃2021-01-06 10:25
int *n
n没有初始化,是个野指针。
程序代码:
#include <stdio.h>

void niubi(int *m)
{
    int n,i=1;
    n=*m;
    for(i=1;i<10;i++)
    {
        if(*m<*(m+i))
            *m=*(m+i);
        else if(n>*(m+i))
            n=*(m+i);
    }
    printf("最大值为%d,最小值为%d",*m,n);
}

void main()
{
    int a[10],i=0;
    printf("请输入十个数");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    niubi(a);
}
#3
鱼头豆腐汤2021-01-08 20:50
回复 2楼 纯蓝之刃
多谢大佬
1