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

admin2023-02-27  11

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

  注意:部分源程序在文件prog1.c中。
  请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
  试题程序:
1 #include<conio.h>
2 #include<stdio.h>
3 #include<stdlib.h>
4 #include<string.h>
5 #define N 5
6 void fun(int a[][N],int m)
7 {
8
9 )
10 main()
11 {
12 int a[N][N],m,i,j;
13 FILE*out;
14  printf("***The array***\n");
15   for(i=0;i<N;i++)
16    {for(j=0;j<N;j++)
17     {a[j]=rand()%20;
18    printf("%4d",a[j]);
19    }
20   printf("\n");
21  }
22  m=rand()%4;
23  printf("m=%4d\n",m);
24  fun(a,m);
25  printf("The Result\n");
26  for(i=0;i<N;i++)
27    {for(j=0;j<N;j++)
28    printf("%4d",a[j]);
29    printf("\n");
30    }
31 /*********found*********/
32 out=fopen("out.dat","w");
33  for(i=0;i<N;i++)
34     for(j=0;j<N;j++)
35    a[j]=i*j;
36  fun(a,8);
37  for(i=0;i<N;i++)
38  {for(j=0;j<N;j++)
39     fprintf(out,"%4d",a[j]);
40   fprintf(out,"\n");
41  }
42   fclose(out);
43 /*********found*********/
44 }

选项

答案 1 void fun(int a[][N],int m) 2 { 3 int i,j; 4 for(j=0;j<N;j++) 5 for(i=0;i<=j;i++) 6 a[i][j]=a[i][j]*m; /*上三角元素中的值乘以m*/ 7 }

解析 本程序实现的是:矩阵上三角元素中的值乘以m。上三角元素下标的特点是行下标小于等于列下标,即"i<=j"。使用循环语句遍历数组元素,第1个循环用于控制列坐标,第2个循环用于控制行下标。
转载请注明原文地址:https://kaotiyun.com/show/MD0D777K
0

相关试题推荐
随机试题
最新回复(0)