我必须读取用户输入的10个值到一个数组中,然后用C打印它们

时间:2016-10-19 04:06:47

标签: c arrays

我的老师给了我们代码,该代码应该提示用户输入10个数字,调用函数将数组从最小到最大排序,然后打印结果。我们所要做的就是阅读输入并将其打印出来。这是她给我们的:

#include <stdio.h>
#include <stdbool.h>
#define num 10

void sort_array(int *a, int b);

int main(void)

{

    int array[num] = {0}, i;



    for (i = 1; i < 10; i++) {
        printf("Please enter %d integers ", num);
    /* read the input! */

    sort_array(a, num);

    /* print the sorted array */

return 0;

}

void sort_array(int *a, int b)

{

bool swapped = true;
int temp, i, j = 0;

while (swapped)
    {
    swapped  = false;
    j++;
    for (i = 0; i < b - 1; i +1)

        { 
            if (a[i] > a[i+1]) {
                temp = a[i];
                a[i] = a [i + 1];
                a[i + 1] = temp;
                swapped = true;
                }

            }

        }
}

这是我的尝试:

#include <stdio.h>
#include <stdbool.h>
#define num 10

void sort_array(int *a, int b);

int main(void)

{

int array[num] = {0}, i, j;

printf("Please enter %d integers: ", num);
for (i = 0; i < 10; i++) {
    scanf("%d", &array[i]);
    }

/* read the input! */

sort_array(array, num);

/* print the array */
for (i = 0; i < 10; i++) {
    printf("%d ", array[i]);
    }

return 0;

}

void sort_array(int *a, int b)

{

bool swapped = true;
int temp, i, j = 0;

while (swapped)
    {
    swapped  = false;
    j++;
    for (i = 0; i < b - 1; i +1)

        { 
            if (a[i] > a[i+1]) {
                temp = a[i];
                a[i] = a[i + 1];
                a[i + 1] = temp;
                swapped = true;
                }

            }

        }
}

我知道我可能离正确的距离很远,但有人可以帮帮我吗?我正在使用Quincy进行编译。程序将让我输入数字,但我必须用ctrl + c关闭程序。

很抱歉,如果我搞砸了格式化。

1 个答案:

答案 0 :(得分:3)

使用C编程时,使用ele.waitForVisible()

进行调试是非常好的做法

我重新编写你的代码,通过正确的修正使其工作......还包括一些打印件,以我的观点向你展示,你怎么调试..

不要忘记删除所有不必要的打印件以将程序提交给您的老师

printf