gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 01:52:52 24 4
gpt4 key购买 nike

我的老师给我们的代码应该提示用户输入 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 关闭程序。

抱歉,如果我弄乱了格式。

最佳答案

当你用 C 编程时,使用 printf 进行调试是不是很好的练习

我重新编写了您的代码,并进行了正确的修正以使其正常工作..并且还包括一些打印件以我的观点向您展示,您如何调试..

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

#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:\n", num);
for (i = 0; i < 10; i++) {
printf("number %d: ", i+1);
scanf("%d", &array[i]);
}

/* read the input! */

sort_array(array, num);

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

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 ++)

{
printf("i:%d --- A[i] = %d ---- A[i+1] = %d\n", i, a[i], a[i+1]);
if (a[i] > a[i+1]) {
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
swapped = true;
}

}

}
}

关于c - 我必须将用户输入的 10 个值读取到一个数组中,然后用 C 打印它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40121942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com