1447391641 发表于 2020-12-8 14:03:52

for循环

#include "stdio.h"
void fun(int a)
{int i,j,max;
for(i=0;i<2;i++)
{ max=a;
for(j=1;j<3;j++)
if(a>max)
max=a;            请问这个语句和下面那个a[是什么意思呢 ?
a=max;
}
}
int main()
{
int a={1,2,3,4,5,6},i,j;
   fun(a);
   for(i=0;i<2;i++)
   for(j=0;j<3;j++)
    printf("%4d",a);
        }

风过无痕1989 发表于 2020-12-8 16:00:09

本帖最后由 风过无痕1989 于 2020-12-8 16:05 编辑

你这个程序到底要干什么?若是查找数组中的最大值,则需要去掉第11行;
#include <stdio.h>      // 错误!stdio.h 是系统自带的头函数,要用尖括号,不能用引号
void fun(int a)   // 定义 fun() 函数体
{
        int i, j, max;
        for (i = 0;i < 2;i++)
        {
                max = a;            // 假设第 i 行第 0 列的元素值就是最大值
                for (j = 1;j < 3;j++)
                        if (a > max)
                                max = a;    // 如果 a > max,将大值赋给 max 作为新的最大值
                                a = max;
        }
}
int main()
{
        int a = { 1,2,3,4,5,6 }, i, j;
        fun(a);                        // 调用函数 fun
        for (i = 0;i < 2;i++)
                for (j = 0;j < 3;j++)
                        printf("%4d", a);   // 每个元素占4个字符宽度,输出数组
}

1447391641 发表于 2020-12-8 19:07:55

风过无痕1989 发表于 2020-12-8 16:00
你这个程序到底要干什么?若是查找数组中的最大值,则需要去掉第11行;

考试题考输出什么,那后边那个a=max是什么意思呢

1447391641 发表于 2020-12-8 19:24:02

风过无痕1989 发表于 2020-12-8 16:00
你这个程序到底要干什么?若是查找数组中的最大值,则需要去掉第11行;

前面那个我懂,后面加了一个啊a=max就不知道是干啥的了。

风过无痕1989 发表于 2020-12-8 22:07:41

本帖最后由 风过无痕1989 于 2020-12-9 12:28 编辑

1447391641 发表于 2020-12-8 19:07
考试题考输出什么,那后边那个a=max是什么意思呢

是将 max 的值赋给第 0 列。本例中是 a[ i ][ 0 ] = max,不是 a[ 0 ] = max
i =0 时,将最大值赋给 0 行的第一个元素,即:a[ 0 ][ 0 ] = max
i =1 时,将最大值赋给 1 行的第一个元素,即:a[ 1 ][ 0 ] = max
页: [1]
查看完整版本: for循环