用C语言写题目之“ 一维数组最小值及下标”

正确代码奉上

#include<stdio.h>
#include<math.h>
int main()
{
    int a[5];
    int i,min,weizhi,t;//min用来做最小数,weizhi就是最小数的下标
    for(i=0;i<5;i++)//输入五个数
    scanf("%d",&a[i]);
    min=a[0];//令最小数为数组首位
    for(i=0;i<5;i++)//寻找最小数和最小数的位置,并进行替换
    {
        if(a[i]<min)
        {
            min=a[i];//替换
            weizhi=i;//替换
        }
    }
    t=a[0];//根据题目要求和数组中最前面的元素换位置
    a[0]=a[weizhi];
    a[weizhi]=t;
    for(i=0;i<5;i++)
        printf("%4d",a[i]);
    printf("\nmin=%d,weizhi=%d",min,weizhi);
}

题目介绍

有一数组内放5个整数,要求找出第一次出现的最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。

输入格式:

在一行中输入5个用空格间隔的整数。

输出格式:

在第一行输出变化后的一维数组,每个数占4列列宽,在第二行输出“min=最小值,weizhi=下标”,最小值和下标都是原样输出,没有列宽控制。

输入样例:

在这里插入图片描述

输出样例:

在这里插入图片描述

本题思路

学生认为这道题可以分为两块来写代码
第一块是题目中的

找出第一次出现的最小数和它的下标

这就需要使用循环加if判断语句来实现
第二块就是题目中的

然后把它和数组中最前面的元素即第一个数对换位置

这个就需要再定义一个新的变量**//代码中我用的是t**,用来交换元素。
其他在代码块中都有注释,希望可以帮助大家理解。

补充

本题目输出printf是右对齐;在前面加-,是左对齐
而%和d中间的数字表示数字宽度

ending

若有不懂的地方,可以在评论区留言,我看到会回复的呦。
文章若有解释不对的地方,还望大佬指出,我会立刻修正。

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值