llf123456 发表于 2020-12-3 23:36:19

求助

7-1 最值交换 (10分)
从键盘输入某班学生某门课程的成绩(int型)(每班人数最多不超过40人),当输入为负值时,表示输入结束,找出最低分的位置,并和第1个元素进行交换然后输出整个数组元素。

输入格式:
以空格分隔,不超过40个的整数分数序列,以负数结束

输出格式:
输出交换后的数组元素,每个元素空格分隔;按如下形式输出printf("%5d",a)

输入样例:
在这里给出一组输入。例如:

85 73 62 99 100 93 -1
输出样例:
在这里给出相应的输出。例如:

   62   73   85   99100   93

风过无痕1989 发表于 2020-12-4 01:07:41

本帖最后由 风过无痕1989 于 2020-12-4 10:03 编辑

不好意思,昨天编译软件坏了,程序写好后,没有经过调试。现修改为调试后的程序:
#include<stdio.h>
int main()
{
        int i = 0, j, m = 0, temp;
        int a;
        do
        {
                scanf_s("%d", &a);
                a = a;               // 将接收到的成绩复制到第 2 行
                m = a;
                i++;
        } while (m != -1);

        for (i = 0;i < 6;i++)                  // 对第一行进行排序
        {
                for (j = 0;j < 5;j++)
                {
                        if (a > a)
                        {
                                temp = a;
                                a = a;
                                a = temp;
                        }
                }
        }

        for (i = 0;i < 6;i++)               // 排序后,a 自然就是最小的
        {
                if (a == a)            // a 与 a 交换位置
                {
                        a = a;          // 将 a 暂存于 a
                        a = a;          // 将最小的数 a 存于 a
                        a = a;         // 将暂存于 a 的数存于 a
                        break;
                }
        }

        for (i = 0;i < 6;i++)               // 输出第 2 行的数
        {
                printf("%d ", a);
        }
        printf("\n");

}
页: [1]
查看完整版本: 求助