c语言初学者,请各位大佬帮忙,求这道C语言程序的编程程序!!!

 

输入一个正整数n (1<n≤10),再输入n个整数,将它们存入数组a中。输出最小值和它所对应的下标。

#include <stdio.h>
int main()
{
    int a[10],i=0,n=0,min=0,xb=0;
    scanf("%d",&n);
    for (i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        if (i==0)
        {
            min = a[i];
        }else if (min > a[i])
        {
            min = a[i];
            xb = i;
        }
    }
    printf("min[%d]=[%d],",xb,min);
}

思路 可以用循环实现,不断比较数组每个元素

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int n = 0, i;
int min = 0,minpos = 0;
int* a = NULL;
printf("请输入你要输入多少整数\n");
scanf("%d",&n);
a = (int*)malloc(n*sizeof(int));
if(a == NULL) return -1;
printf("请输入这%d个整数\n",n);
for(i=0; i<n;)
{
scanf("%d",a+i);
if(*(a+i)<2 || *(a+i)>10)
{
printf("重新输入\n");
}else{
i++;
}
}
min = *a;
for(i=0; i<n; i++)
{
if(*(a+i) < min)
{
min = *(a+i);
minpos = i;
}
}
printf("最小数%d,位置%d\n",min, minpos+1);
*(a+minpos) = *a;
*a = min;
for(i=0; i<n; i++)
{
printf("%d\t",*(a+i));
}
return 0;
}

 

学习下排序算法

最大值最小值都有,你自己改装一下吧 


// 给你一段代码你参考一下
 
#include<stdio.h>
 
static inline int MyMax(int a, int b)
{
   return (a > b) ? a : b;
}
static inline int MyMin(int a, int b)
{
   return (a > b) ? b : a;
}
int main()
{
    int i, m, sum;
    int max = 0x80000000;
    int min = 0x7fffffff;
    double aver;
 
    scanf("%d",&m);
    
    int a[m];
 
    sum=0;
    for(i = 0; i < m; i++) {         
        scanf("%d",&a[i]);
        sum += a[i];
        min = MyMin(min, a[i]);
        max = MyMax(max, a[i]);
    }
 
    aver = (double)sum / (double)m;
    
    printf("aver = %f, max=%d, min=%d\n", aver, max, min);
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632