以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  请教这2个参数的值  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=37819)


--  作者:shen2000
--  发布时间:9/11/2006 7:33:00 PM

--  请教这2个参数的值
老师:
    您好!
    我是一个C的初学者,请教一个问题。
    下例的程序是输入10个数,打印出最大值(经测试,此程是正确的)。/*  */ 内的中文就是我不明白的地方。

/* Passing an array to a function. */
#include <stdio.h>
#define MAX 10
int array[MAX], count;
int largest(int num_array[], int length);
int main( void )
{
    /* Input MAX values from the keyboard. */
    for (count = 0; count < MAX; count++)
    {
        printf("Enter an integer value: ");
        scanf("%d", &array[count]);
    }
    /* Call the function and display the return value. */
    printf("\n\nLargest value = %d\n", largest(array, MAX));
    return 0;
}
/* Function largest() returns the largest value */
/* in an integer array */
int largest(int num_array[], int length)
{
    int count, biggest = -12000;                        /*此处的-12000是从何而来的?*/
    for ( count = 0; count < length; count++)  /*此处的length的值是多少?没有
                                               赋值啊*/
    {
        if (num_array[count] > biggest)
            biggest = num_array[count];
    }
    return biggest;
}
   请指点。
   谢谢老师!


--  作者:elfstone
--  发布时间:9/11/2006 11:57:00 PM

--  
以下是引用shen2000在2006-9-11 19:33:00的发言:
老师:
     您好!
     我是一个C的初学者,请教一个问题。
     下例的程序是输入10个数,打印出最大值(经测试,此程是正确的)。/*  */ 内的中文就是我不明白的地方。

/* Passing an array to a function. */
#include <stdio.h>
#define MAX 10
int array[MAX], count;
int largest(int num_array[], int length);
int main( void )
{
     /* Input MAX values from the keyboard. */
     for (count = 0; count < MAX; count++)
     {
         printf("Enter an integer value: ");
         scanf("%d", &array[count]);
     }
     /* Call the function and display the return value. */
     printf("\n\nLargest value = %d\n", largest(array, MAX));
     return 0;
}
/* Function largest() returns the largest value */
/* in an integer array */
[color=#FF0000] int largest(int num_array[], int length)[/color]
{
     int count, biggest = -12000;                        /*此处的-12000是从何而来的?*/
     for ( count = 0; count < length; count++)  /*此处的length的值是多少?没有
                                                赋值啊*/
     {
         if (num_array[count] > biggest)
             biggest = num_array[count];
     }
     return biggest;
}
    请指点。
    谢谢老师!



1。因为是求最大值,所以将biggest赋一个尽可能小的值,然后在循环比较数组中每个值时,有比biggest大的值,就将其赋给biggest,此处不必非要是-12000,只要尽可能小就可以
2。length是函数的参数,其值由参数传递,此处的值为MAX=10

--  作者:shen2000
--  发布时间:9/12/2006 7:53:00 AM

--  
非常感谢esfstone老师。
    
    我学得有点机械了,欠灵活。
    
    祝老师快乐!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
54.688ms