#include<stdio.h>typedefstruct{int num;char name[9];float score[3];}STU;voidshow(STU tt){int i;printf("%d %s : ",tt.num,tt.name);for(i=0; i<3; i++)printf("%5.1f",tt.score[i]);printf("\n");}voidmodify(___1___ *ss,float a){int i;for(i=0; i<3; i++)
ss->___2___ *=a;}main(){ STU std={1,"Zhanghua",76.5,78.0,82.0};float a;printf("\nThe original number and name and scores :\n");show(std);printf("\nInput a number : ");scanf("%f",&a);modify(___3___,a);printf("\nA result of modifying :\n");show(std);}
#include<stdio.h>#include<stdlib.h>#define N 5 int 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[i][j]=rand()%10;printf("%4d", a[i][j]);}printf("\n");}do n =rand()%10;while( n >=3);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[i][j]);printf("\n");}NONO();}
解題思路:
本題是利用兩重循環給二維數組左下三角元素中的值乘以n。
參考答案:
int fun (int a[][N],int n ){int i, j;for(i =0; i < N ; i++)for(j =0; j <= i; j++)
a[i][j]*= n ;}