求助
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 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]