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

我这个最后的结果为什么不是9而是--858993460,是哪里没有赋值清楚啊?要怎么改?

WLF40417217 发布于 2021-05-15 16:57, 1819 次点击
我这个最后的结果为什么不是9而是--858993460,是哪里没有赋值清楚啊?要怎么改?
#include<stdio.h>
void main()
{
    int A[10],a=A[10];
    int i,max=A[0];
    a=scanf("%d",&a);
    for(A[10]=0;A[10]<10;A[10]++)
        for(i=1;i<10;i++)
        {
            if(A[i]>max);
            max=A[i];
        }
        printf("max=%d",max);
}
3 回复
#2
我善治鬼2021-05-15 20:16
int A[10],// 没有初始化数组, 数组值未知
a=A[10];    // 数组越界了
int i,max=A[0];  // 使用未初始化的数组赋值
 for(A[10]=0;A[10]<10;A[10]++) // 1.数组越界了, 2.这个循环是多余的, 循环体内并没有用到

这样改
void main()
{
    int A[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int i,max=A[0];
    scanf("%d",&max);
        for(i=1;i<10;i++)
        {
            if(A[i]>max);
            max=A[i];
        }
        printf("max=%d",max);
}
#3
WLF404172172021-05-16 21:57
回复 2楼 我善治鬼
感谢大佬
#4
hbccc2021-05-16 22:52
a[10]在没有赋值的情况下,赋值给a。
a[0]在没有赋值的情况下,赋值给max。
数组元素是a[0]-a[9],a[10]越界。
1