C语言作业输出最小值,帮我看看哪里写错了

#include <stdio.h>
#include <stdlib.h>

int main()
{   int n,i,j,k,a;
    for(i=0;i<10;i++)
    {
        scanf("%d",&n);
        for(j=0;j<9;j++)
        {
            if(n<k)
            {
                a=n;
                n=k;
                k=a;
            }
        }
    }
    printf("%d",k);
    return 0;
}
 

程序有2个主要问题:
1、变量K没有赋储值,就用于比较,有很大不确定性;建议赋一个比较大的值k=65532;

2、第二个for循环,没有意义。从程序里看,只是判断了9次n和k的值;

修改后的程序如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{   int n,i,j,k=999,a;
    for(i=0;i<10;i++)
    {
        scanf("%d",&n);
        //k用于存储最小值
        if(n<k)  //n比k还小,则交换
        {
            a=n;
            n=k;
            k=a;
        }
    }
    printf("%d",k);
    return 0;
}