printf(\scanf(\j=dec_bin(a,decimal); for(i=j;i>=0;i--) printf(\}
——————————————————————————————————————
9.33 编写函数调用随机函数产生0到19之间的随机数,在数组中存入15个互不重复的整数。要求在主函数中输出结果。若已定义x为int类型,调用随机函数步骤如下: #include \. . .
x=rand() /*产生0到19的随机数*/ ※程序如下※ #include
void rand1(int a[]) {
int i=0,j,x,flag; while(i<15) { flag=1; x=rand() ;
for(j=0;jBR> if(a[j]==x) { i--; flag=0; break; }
if(flag==1) a=x; i++; } } main() { int i,a[15]; clrscr(); rand1(a); for(i=0;i<15;i++) printf(\}
——————————————————————————————————————
9.34 求任意方阵每行、每列、两对角线上元素之和。 ※程序如下※ #include #define M 3
void line_sum(int a[M][M],int a1[]) { int i,j,k;
for(i=0,k=0;iBR> { a1[k]=0;
for(j=0;jBR> a1[k]+=a[j]; } }
void column_sum(int a[M][M],int a2[]) { int i,j,k;
for(i=0,k=0;iBR> { a2[k]=0;
for(j=0;jBR> a2[k]+=a[j]; } }
void diagonal_sum(int a[M][M],int a3[]) { int i,j;
for(i=0;iBR> for(j=0;jBR> { if(i==j) a3[0]+=a[j]; if(i+j==M-1) a3[1]+=a[j]; } } main() {
int i,j,a[M][M],a1[M],a2[M],a3[2]={0}; clrscr(); i=M;
printf(\for(i=0;iBR> for(j=0;jBR> scanf(\line_sum(a,a1); column_sum(a,a2); diagonal_sum(a,a3);
for(i=0;iBR> printf(\
for(i=0;iBR> printf(\for(i=0;i<2;i++)
printf(\}
—————————————————————————————————————— 9.35 求两个矩阵的和 #include #define M 4
void add(int a[M][M],int b[M][M],int c[M][M]) { int i,j; for(i=0;iBR> {
for(j=0;jBR> c[j]=a[j]+b[j]; } } main() {
int i,j,k,a[M][M],b[M][M],c[M][M]={0}; i=M;
printf(\for(i=0;iBR> for(j=0;jBR> scanf(\i=M;
printf(\for(i=0;iBR> for(j=0;jBR> scanf(\add(a,b,c); i=M;
printf(\\\n\for(i=0;iBR> {
for(j=0;jBR> printf(\printf(\} }
—————————————————————————————————————— 9.36 编写函数打印出以下形式的乘法九九表。 ** A MULTIPLICATION TABLE ** (1) (2) (3) (4) (5) (6) (7) (8) (9)
---------------------------------------------------------- (1) 1 2 3 4 5 6 7 8 9 (2) 2 4 6 8 10 12 14 16 18 (3) 3 6 9 12 15 18 21 24 27 (4) 4 8 12 16 20 24 28 32 36 (5) 5 10 15 20 25 30 35 40 45 (6) 6 12 18 24 30 36 42 48 54
(7) 7 14 21 28 35 42 49 56 63 (8) 8 16 24 32 50 48 56 64 72 (9) 9 18 27 36 45 54 63 72 81
---------------------------------------------------------- ※程序如下※ #include main() { int i,j; clrscr();
printf(\printf(\
printf(\for(i=1;i<=9;i++) {
printf(\for(j=1;j<=9;j++) printf(\printf(\}
printf(\}
——————————————————————————————————————
9.37 调用随机函数为5 x 4的矩阵置100以内的整数,输出该矩阵,求出每行元素之和并把和值最大的那一行与第一行上的元素对调。若已定义x为int类型,调用随机 函数步骤如下: #include \. . .
x=rand( )0 /*产生0到100的随机数*/ ※程序如下※ #include #include void rand1(int *p) { int i,j;
for(i=0;i<5;i++) for(j=0;j<4;j++,p++) *p=rand()0; }
void exchange(int a[5][4]) {
int i,j,max,temp,b[5]={0}; for(i=0;i<5;i++) for(j=0;j<4;j++) b+=a[j]; for(i=0;i<5;i++)
if(bBR> for(j=0,i=0;j<4;j++) { temp=a[j]; a[j]=a[max][j]; a[max][j]=temp; } } main() {
int i,j,a[5][4]; clrscr(); rand1(a);
printf(\for(i=0;i<5;i++) {
for(j=0;j<4;j++) printf(\printf(\}
exchange(a);
printf(\for(i=0;i<5;i++) {
for(j=0;j<4;j++) printf(\printf(\} }
——————————————————————————————————————
9.38 调用随机函数为5 x 5 的矩阵置100以内的整数,输出该矩阵,然后逆置该矩阵。即将第一列的元素放在第一行上、第二列的元素放在第二行上、其它依次类推。 ※程序如下※ #include #include
void Rand1(int *p) { int i,j;
for(i=0;i<5;i++)