详细代码如下:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void fun (int array[3][3])
{
int i , j , t;
for(i = 0; i<3; i++)
{
for(j = i+1; j<3; j++) //核心: 右上半角的元素与左下半角元素互换位置
{
t = array[i][j];
array[i][j] = array[j][i];
array[j][i] = t;
}
}
}
void main()
{
FILE *wf;
int i,j;
int array [3][3]={
{
100,200,300},{
400,500,600},{
700,800,900}};
system("CLS");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf("%7d ",array[i][j]);
printf("\n ");
}
fun(array);
printf("Converted array:\n ");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf("%7d ",array[i][j]);
printf("\n ");
}
/******************************/
wf=fopen("out.dat","w");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
fprintf(wf,"%7d ",array[i][j]);
fprintf(wf,"\n");
}
fclose(wf);
/*****************************/
}
要点:
主对角线 a[i][i]
详细代码如下:
#include <stdio.h>
void fun()
{
int a[3][3],sum;
int i,j;
/*************found**************/
sum=0;
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
/*************found**************/
scanf("%d",&a[i][j]); //取地址符 &
}
for(i=0;i<3;i++)
sum=sum+a[i][i]; // 主对角线 a[i][i];
printf("Sum=%d\n",sum);
}
void main()
{
fun();
}
详细代码如下:
#include <stdlib.h>
#include <stdio.h>
#define N 20
void fun( int *a)
{
int i, x, n=0;
x=rand()%20;
/**********found**********/
while (n<N)
{
for(i=0; i<n; i++ )
/**********found**********/
if( x==a[i] )
break;
/**********found**********/
if( i== n) //说明没有break i就跳出了for循环 所有 i == n
{
a[n]=x; n++; }
x=rand()%20;
}
}
void main()
{
int x[N]={
0} ,i;
fun( x );
printf("The result : \n");
for( i=0; i<N; i++ )
{
printf("%4d",x[i]);
if((i+1)%5==0)printf("\n");
}
printf("\n\n");
}