计算和找出c中的值对的差异

时间:2011-05-29 23:50:37

标签: c

我真的需要帮助解决这个问题。

  

写一个接受六(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);
}

1 个答案:

答案 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)。