使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),该函数的功能是:使数组左下半三角元素中

admin2020-06-02  30

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),该函数的功能是:使数组左下半三角元素中的值乘以n。例如,若n的值为3,a数组中的值为

则返回主程序后a数组中的值应为

    注意:部分源程序给出如下。
    请勿改动函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
    试题程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define N 5
void fun(int a[][N],int n)
{

}
main()
{
    int a[N][N],n,i,j;
    printf ("*****The array  *****\n");
    for(i=0;i<N;i++)
    {
    for(j=0;j<N;j++)
    {
    a[j]=rand()%10;
    printf("%4d",a[j]);
    }
    printf("\n");
    }
    n=rand()%4;
    printf("n=%4d\n",n);
    fun(a,n);
    printf ("*****THE RESULT*****\n");
    for(i=0;i<N;i++)
    {
    for(j=0;j<N;j++)
    printf("%4d",a[j]);
    printf("\n");
    }
}

选项

答案void fun(int a[][N],int n) { int i,j; for(i=0;i<N;i++) for(j=0;j<=i;j++) /*矩形的下三角时,积相乘*/ a[i][j]=a[i][j]*n; }

解析 首先从数组中找出要被乘以n的那部分元素,这一过程其实就是找出将被挑出的元素在原数组中的分布规律的过程。通过观察得出,要被处理的元素下标值的范围是每行中从第一个元素开始,直到列数等于该行行数时为止。找到这个规律后,依次从数组中取得符合要求的元素,然后乘以n。
转载请注明原文地址:https://kaotiyun.com/show/beCp777K
0

最新回复(0)