请帮忙解释C语言中的数组程序谢谢

发布于 科技 2024-02-05
17个回答
  1. 匿名用户2024-01-25

    include 包含头文件。

    void main() main 函数。

    int a[8];定义一个由 0 到 8 的 9 个元素组成的数组。

    int i,j,t;定义了三个变量,其中 i 和 j 用于循环,t 用于交换数据。

    printf("请输入 8 个整数:");输出:“请输入 8 个整数:”

    for(i=0;i<8;我++)这个for循环用于将8个输入数字存储到数组中,例如:i=0,a[0]=2;i=1,a[1]=4;i=2,a[2]=8;i=3,a[3]=0;i=4,a[4]=1;i=5,a[5]=3;i=6,a[6]=8;i=7,a[7]=6;当 i 加到 8 并且 i 不再小于 8 时,它会跳出 for 循环并进入下一条指令,即下一个 for 循环。

    scanf("%d",&a[i]);

    for(i=1;i<8;我++)这里的两个for循环是用来比较这8个数字的大小,当i=1,j=1,判断a[0]>a[1]?如果是这样,则 t=a[0],a[0]=a[1],a[1]=t。 在第一个 for 循环中,当 i=1 时,第二个 for 循环控制 a[0] 与 a[1] 进行比较,将 a[1] 与 a[2]...

    将 A[6] 与 A[7] 进行比较,完成第一次比较大小排序。 在第一个for循环中,当i = 2时,第二次比较完成,i控制8个大比较的完成,最后的完成将8个数字的顺序从小到小排列。

    for(j=1;j<=8-i;j++)

    if(a[j-1]>a[j])

    t=a[j-1];

    a[j-1]=a[j];

    a[j]=t;

    printf("排序结果:");输出“排序结果”。

    for(i=0;i<8;我++)这个 for 循环控制 8 个数字的输出。

    printf("%d ",a[i]);

    我不知道你是否明白了。

  2. 匿名用户2024-01-24

    这是将数组的元素从小到大排序的算法之一。 它的工作原理是首先通过循环找到最大的数字,并将其放入数组的最后一个元素,然后通过第二个循环找到第二大元素,然后将其放入数组的倒数第二个元素中,依此类推,到最后一个循环时, 数组中的所有元素都已排序,从而达到了我们的目的。

    程序首先使用 i 作为外循环变量来确定数组中的所有元素一次。

    内环j是判断和交换剩余的未排序元素,内环的循环控制条件非常重要,即j<8-i; 这可确保随着外部循环数量的增加,内部循环会减少,因为要排序的数组元素更少。

    希望对你有所帮助!

  3. 匿名用户2024-01-23

    J 的循环一次只能将最大的一个带到数组的末尾。

    总共有 8 个元素,所以你需要再添加一个循环,你最多需要携带它 8 次。

    例如,数组 a[8]=;

    第一次,它变成了。

    第二次变成了。

    第三次变成了。

    第四个变成了。

  4. 匿名用户2024-01-22

    这就是冒泡法。 j 是用来让两个相邻的数字比较的,把较大的数字放在最后,比如我现在输入29835671,先让 2 和 9 比较,如果 2 很大,那么 9 和 2 就会倒过来,显然这不是真的,那又怎样,然后让 9 和 8 比,显然 9 更大, 所以把9换到第三位,再把9和3比较一下,显然也是9大,再换位,依此类推,9就排在最后。而这一轮循环之后,应该28356719新的数字顺序,并且应该使用这个程序从小到大排列一个8位数字,显然这个循环无法达到目的,即一个循环是不够的,所以需要用双循环来控制, 所以需要 i 来控制我上面介绍的多次过程(即 j 控制的周期),只有这样才能将这个数字从小到大排列。

    希望对你有所帮助。

  5. 匿名用户2024-01-21

    j 是控制回路,其工作原理与 i 相同。

    这是排序方法,如果我没记错的话,就是冒泡排序,所以让我们自己来看看排序方法。

    您还可以在每个 for 循环后打印数组的值,您将能够看到如何按气泡排序。

  6. 匿名用户2024-01-20

    你给一个程序来问你不明白的东西,如果你这样问,你不知道你会问什么。

  7. 匿名用户2024-01-19

    这本书是对的,你可能把 array[10] 理解为一个数组元素,但它只是把一个 10 个元素的数组作为一个参数,而不是一个数组元素,明白吗?

  8. 匿名用户2024-01-18

    左边的书说,数组的元素不能作为参数使用,不能理解数组不能作为参数。

    其实,这本书太曲折了,让人看不懂。

    请记住,数组作为函数参数可以通过以下方式使用:

    1. type fun(type arr,int size);

    fun(type *arr, int size);

    fun(键入 arr[constant], int size);

    其中,1 2 方法最常用,第三种方法不常用,一般不写常量,因为他们不关心编写编译器。 另一个问题也来自你,你可以看解释了解详情。

  9. 匿名用户2024-01-17

    数组元素不能用作参数,但数组可以,在本例中为数组。

  10. 匿名用户2024-01-16

    在计算机程序中,通常可能发生三种类型的错误:

    1)语法错误:这是指程序包含不符合语法规则的语句,例如错误地编写关键字或符号(将printf写成print,将数组元素引用写成a(2)等),使用未定义的变量,括号不配对等。 包含语法错误的程序无法编译,因此它们不会运行。

    2)逻辑错误:这是指程序中没有语法错误,通过编译和连接可以生成可执行程序,但程序的结果不符合预期的错误。例如,整数变量的值超出了有效值范围,在 scanf 函数中省略了地址运算符 &,数组元素引用中的下标越界,并且在应该使用时不使用复合语句。

    因为有逻辑错误的程序仍然可以运行,所以是一种难以发现和调试的程序错误,在程序设计和调试中应特别注意。

    3)系统错误:这是指程序没有语法错误和逻辑错误,但程序的正常运行取决于某些外部条件的存在,如果缺少这些外部条件,程序将无法运行。例如,对已经排序的数组执行半拆分搜索方法,但实际数据没有排序,需要在程序中打开已有文件,但该文件因其他原因丢失等。

  11. 匿名用户2024-01-15

    本段用于转换 10 个整数 a 的数组(按初始顺序 1、2、3、.)。10) 以相反的顺序排序。该组的核心是一个 while 循环,它交换刻度两端的元素,然后靠近中间。

    请看下面**的说明:

    初始化变量:

    a 是一个由 10 个整数组成的数组,初始值为 i,这是一个从 0 开始的索引。

    j 是从 9 开始的索引。

    t 是一个临时变量,用于在交换过程中存储值。

    while loop:只要 i 小于 j,就执行以下操作:

    将 a[i] 的值存储在 t 中。

    将 a[j] 的值赋值为 a[i]。

    将 t 的值(以前为 a[i])赋值给 a[j] 并增加 i 的值。

    减小 j 的值。

    在循环中,这些运算使 i 和 j 更接近中间,直到 i 不再小于 j。 此时,数组 a 中的元素已经以相反的顺序排列。

    使用 for 循环以相反的顺序打印数组。

    所以,整个过程就是通过不断交换数组两端的元素来实现数组的反序。 请注意,您的**存在一些语法问题,以下是更正后的版本:

    #include

    int main(void) ;

    int i = 0;

    int j = 9;

    int t;

    while (i < j) {

    t = a[i];

    a[i] =a[j];

    a[j] =t;

    i++;j--;

    for (i = 0; i < 10; +i) {printf("%d ",a[i]);

    return 0;

    运行此修复程序后,输出为:

  12. 匿名用户2024-01-14

    这 ** 只是交换数组 a 中下标为 i 和 j 的元素的值,并且不会以相反的顺序对数组 a 本身进行排序。 如果要实现数组的反序,则需要使用其他算法或方法。 下面是以相反顺序使用数组下标的示例**:

    复制 int n = 10;

    int afor(int i = 0; i < n / 2; i++)int t = a[i];

    a[i] =a[n - i - 1];

    a[n - i - 1] =t;

    for(int i = 0; i < n;i++)cout “这个**首先通过一个for循环交换数组A中元素的前半部分和后半部分的位置,然后以相反的顺序输出数组A。 正如你所看到的,逆序实现的核心是交换元素的位置,而不仅仅是交换元素的值。

  13. 匿名用户2024-01-13

    printf 似乎是错误的,它需要两边的双引号。 它是一个转移字符,这意味着它是一个换行符。

    该程序允许您输入一个包含 5 个整数数据的数组并输出它们。

    请输入,请输出。

    是程序让它输出出中文指令,并不是说这两句话的输出可以让你进行输入和输出操作,输入和输出都是通过scanf和printf实现的。

    两个for循环的作用在程序中得到了明确的解释。

    运行只有一个结果,即以下行。 上面的行是调试时输入的内容,而不是输出。

  14. 匿名用户2024-01-12

    它似乎没有输出。

    22“酒吧。 它是以 5 个数字读取的。

    然后输出含义 (1) 主程序条目 (2) 将 x 设置为 0-5 整数数组整数变量 k

    4) 一次读取 5 个数字 (6) 输出 5 个数字。

    for 用于为数组赋值。

    scanf 是读取的数据。

    运行的结果为 1。

    因为第一行最初是由您输入的。

  15. 匿名用户2024-01-11

    目的:输入一个数组,然后输出该数组;

    但我不知道为什么最后一个是-22

    2 1 定义了一个整数数组 x[5],k

    输入数据。 输出数据。

    3 你写错了第二个,应该是。

    输出数据是。

    并请输入数据立即点击5。

    4for 语句是循环结构。

    scanf 播放将数据传输到计算机,您的程序有很多错误,我修改了它并运行了它,以下是正确的。

    #include

    voidmain()

  16. 匿名用户2024-01-10

    在整数数组中输入 5 个数字,然后输出,但这里需要更改 for(k=0; k<5;k++)

    否则你会犯一个像上面的-22这样的错误

    printf

    请输入您的数据:");

    for(k=0;k<5;k++)

    scanf"%d",&x[k]);这里是将每个数据输入到数组中的循环形式,scanf() 是输入函数,每个步骤的意思对程序来说很清楚,建议大家看一下数字,这个太基础了,不好解释:)

  17. 匿名用户2024-01-09

    这个问题巧妙地利用了数组 c 中的元素来计算数组 s 中四个数字 1234 的出现次数。

    程序完成后,最终结果为 4332,即 1 出现 4 次,2 和 3 各出现 3 次,4 出现 2 次。

    for(i=0;i<12;i++)

    c[s[i]]+

    当 i=0 时,s[i] 等价于 s[0],数字实际上是 1,相当于 c[1]++,因此 c 数组中的第一个元素自然从 0 变为 1

    同理,当 i=2 时,s[2] 的内容为 2,相当于 c[2]++,因此 c 数组中的第二个元素自然从 0 变为 1,数字 1 和 2 各出现一次。

    以此类推,当 i=3 且 i=4 时,c[4]++ 被执行了两次,表示数字 4 出现了两次。

    再往下推,思路已经很清楚了,背后的**也不算太难。

    这个问题的关键在于c[s[i]]+**一行,你按照我说的思路,根据循环变量的附加值,代入数字,你自然就明白了。

    c[5]= 将 c 数组中的所有元素清除为 0

相关回答
14个回答2024-02-05

我同意我楼上说的加{}来划分级别,但是,其实没有{},看看你发的这个**的缩进关系,也可以看出if和else的对应关系。 >>>More

18个回答2024-02-05

首先,我会明确地告诉你,选项 c 是正确的,选项 A strcpy 是一个字符串复制函数,它可以将字符串 “China” 复制到字符数组 str2 中并覆盖 str1 中的 “beijing”,选项 c strcat 是一个字符串连接函数,可以将 “China” 连接到“beijng”的后面。 因此,C. >>>More

14个回答2024-02-05

在 VisualStudio 2013 中编写和调试 C 语言程序的步骤: 1.打开 [文件] - 新建 - 项目以打开“新建项目”窗口。2. 在[模板]、[名称]、[位置]和[解决方案名称]中选择[Visual C++] Win32控制台应用程序,可以根据需要填写。 >>>More

13个回答2024-02-05

main()

intm=7,n=10,k; >>>More

3个回答2024-02-05

#include

void fun1(int n) >>>More