我真的需要帮助解决这个问题。
写一个接受六(6)的程序 来自用户的值对然后 计算并存储差异 数组中的每对值 然后应该计算出数值的数组 按升序排序 印在屏幕上。
我输入了六对值,我遇到的麻烦就是差异并按升序存储。
非常感谢任何帮助。
#include <stdio.h>
main()
{
int arr[12], num1, num2, i;
for (i = 1; i < 7; i++) {
printf("Enter first number for pair ");
scanf("%d", &num1);
printf("Enter second number for pair ");
scanf("%d", &num2);
}
if (num1 > num2)
printf("arr[i-1=num1-num2 ");
else
printf("arr[i-1]=num2-num1 ");
{
for (i = 1; 1 < 7; i++)
printf("%7d\n", arr[i]);
}
return (0);
}
答案 0 :(得分:1)
您需要在读取两个值并存储值后立即检查差异。
#include <stdio.h>
main()
{
int arr[7], num1, num2, i;
for (i = 0; i < 7; i++) {
printf("Enter first number for pair ");
scanf("%d", &num1);
printf("Enter second number for pair ");
scanf("%d", &num2);
//check differences now
if(num1>num2)
{
arr[i]=num1-num2;
}
else
{
arr[i]=num2-num1;
}
}
}
对于矢量的排序,您可以使用bubble-sort algorythm。 http://www.algorithmist.com/index.php/Bubble_sort.c
更改向量和限制的原因是因为向量位置从0到n而不是1到n,这意味着for应该从0到6(&lt; 7或&lt; = 6)。