#includestdio.h
站在用戶的角度思考問題,與客戶深入溝通,找到新疆網(wǎng)站設(shè)計(jì)與新疆網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋新疆地區(qū)。
int main()
{
void move(int *s);
int a[3][3];int i=0;
int *p=a[0][0];
printf("請(qǐng)輸入一個(gè)3*3的數(shù)組:\n");
for(i=0;i3;i++)
{
scanf("%d%d%d",a[i][0],a[i][1],a[i][2]);
}
move(p);
printf("轉(zhuǎn)置后的結(jié)果:\n");
for(i=0;i3;i++)
{
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
}
return 0;
}
void move(int *s)
{
int i,j,t;
for(i=0;i3;i++)
{
for(j=i;j3;j++)
{
t=*(s+3*i+j);
*(s+3*i+j)=*(s+3*j+i);
*(s+3*j+i)=t;
}
}
}
擴(kuò)展資料:
在C語(yǔ)言或C++中,會(huì)把用來#include的文件的擴(kuò)展名叫 .h,稱其為頭文件。
#include文件的目的就是把多個(gè)編譯單元(也就是c或者cpp文件)公用的內(nèi)容,單獨(dú)放在一個(gè)文件里減少整體代碼尺寸;或者提供跨工程公共代碼。在現(xiàn)行的c++版本中,應(yīng)用這個(gè)頭文件應(yīng)是#includestdio.h
stdio 就是指 “standard input output"(標(biāo)準(zhǔn)輸入輸出)所以,源代碼中如用到標(biāo)準(zhǔn)輸入輸出函數(shù)時(shí),就要包含這個(gè)頭文件!
例如c語(yǔ)言中的 printf("%d",i); scanf("%d",i);等函數(shù)。
引用方法
#include stdio.h
(注:在TC2.0中,允許不引用此頭文件而直接調(diào)用其中的函數(shù),但這種做法是不標(biāo)準(zhǔn)的。也不建議這樣做。以避免出現(xiàn)在其他IDE中無法編譯或執(zhí)行的問題。)
標(biāo)準(zhǔn)函數(shù)
int getchar()//從標(biāo)準(zhǔn)輸入設(shè)備寫入一個(gè)字符
int putchar()//向標(biāo)準(zhǔn)輸出設(shè)備讀出一個(gè)字符
int scanf(char*format[,argument…])//從標(biāo)準(zhǔn)輸入設(shè)備讀入格式化后的數(shù)據(jù)
int printf(char*format[,argument…])//向標(biāo)準(zhǔn)輸出設(shè)備輸出格式化字符串
char* gets(char*string)//從標(biāo)準(zhǔn)輸入設(shè)備讀入一個(gè)字符串
int puts(char*string)//向標(biāo)準(zhǔn)輸出設(shè)備輸出一個(gè)字符串
int sprintf(char*string,char*format[,…])//把格式化的數(shù)據(jù)寫入某個(gè)字符串緩沖區(qū)。
#include stdio.h
int main()
{ struct aaa
{ int x;
int y;
};
struct aaa t,a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};
int i,j;
for(i=0; i3; i++)
{ for(j=0; j3; j++)
printf("[%d,%d]? ",a[i][j].x,a[i][j].y);
printf("\n");
}
printf("after:\n");
for(i=0; i3; i++)
for(j=0; ji; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(i=0; i3; i++)
{ for(j=0; j3; j++)
printf("[%d,%d]? ",a[i][j].x,a[i][j].y);
printf("\n");
}
return 0;
}
或:
#include stdio.h
struct aaa
{ int x;
int y;
};
void zhuanzhi(struct aaa a[][3])
{ struct aaa t;
int i,j;
for(i=0; i3; i++)
for(j=0; ji; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
void prt(struct aaa a[][3])
{ int i,j;
for(i=0; i3; i++)
{ for(j=0; j3; j++)
printf("[%d,%d]? ",a[i][j].x,a[i][j].y);
printf("\n");
}
}
int main()
{ struct aaa a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};
prt(a);
zhuanzhi(a);
printf("after:\n");
prt(a);
return 0;
}
/* 程式功能: 矩陣轉(zhuǎn)置 (transportation) *//*輸入:m×n矩陣A *//*輸出:矩陣B,B=AT */#include void main() { int i, j, m=5, n=5; int B[6][6], A[6][6]; printf("請(qǐng)依序輸入二維陣列A(5x5)的元素內(nèi)容(可以5個(gè)一行,可以空格或回車隔開): \n"); for (i = 1; i = 5; i++) { for (j = 1; j = 5; j++) { scanf("%d", A[i][j]); } } printf("\n\n原始:\n"); for(i = 1; i = m; i ++) { for(j = 1; j =n; j++) { printf("%4d",A[i][j]); } printf("\n"); } printf("\n轉(zhuǎn)置後:\n"); for (i = 1; i = m; i++) { for (j = 1; j = n; j++) { B[i][j] = A[j][i]; /*作轉(zhuǎn)置的動(dòng)作*/ printf("%4d ", B[i][j]); /*輸出轉(zhuǎn)置後的結(jié)果*/ } printf("\n"); }}
程序如下:
#include stdio.h
void move (int matrix[3][3])
{
int i, j, k;
for(i=0; i3; i++)
for (j=0; ji; j++)
{
k = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = k;
}
}
void main()
{
int i, j;
int data[3][3];
printf("Enter matrix:\n");
for(i=0; i3; i++)
for (j=0; j3; j++)
{
scanf("%d",data[i][j]);
}
printf("The matrix is:\n");
for(i=0; i3; i++)
{
for (j=0; j3; j++)
{
printf("%d",data[i][j]);
printf(" ");
}
printf("\n");
}
move(data);
printf("After move:\n");
for(i=0; i3; i++)
{
for (j=0; j3; j++)
{
printf("%d",data[i][j]);
printf(" ");
}
printf("\n");
}
}
/*
Enter matrix:
1 2 3 4 5 6 7 8 9
The matrix is:
1 2 3
4 5 6
7 8 9
After move:
1 4 7
2 5 8
3 6 9
*/
多給點(diǎn)分吧~~
我的代碼邏輯是:
矩陣行指針初值指向每行首地址,迭代依次取所有行指針指向值組成新行,所有行指針自增。最終組合新的矩陣。
#include?stdio.h
#include?malloc.h
int?**getList(int?row,int?clo);//獲取矩陣地址空間
void?setNum(int?**nList,int?n);//填寫數(shù)值
void?prtList(int?**nList,int?row,int?clo);//打印矩陣
int?**zz(int?**nList,int?row,int?clo);//轉(zhuǎn)置函數(shù)
int?main()
{
int?row,clo,**nList=NULL,**nListSave=NULL;
printf("輸入矩陣行列數(shù):");
scanf("%d%d",row,clo);
nList=getList(row,clo);
setNum(nList,row*clo);
printf("輸入的矩陣為:\n");
prtList(nList,row,clo);
printf("轉(zhuǎn)置后的矩陣為:\n");
nListSave=zz(nList,row,clo);
free(nList);
nList=nListSave;
prtList(nList,clo,row);
return?0;
}
int?**zz(int?**nList,int?row,int?clo)
{
int?*nSave=NULL,**listSave=NULL,**listp=nList,*p=NULL,i,j;
nSave=(int?*)malloc(sizeof(int)*row*clo);
listSave=(int?**)malloc(sizeof(int*)*clo);//倒置后的矩陣
p=nSave;
for(j=0;jclo;j++)
{
for(i=0;irow;i++)
{
*p++=*listp[i];
listp[i]=listp[i]+1;
}
}
for(i=0;iclo;i++)
listSave[i]=nSave[i*row];
for(i=0;irow;i++)
free(nList[i]);//釋放原矩陣行空間
return??listSave;
}
void?prtList(int?**nList,int?row,int?clo)
{
int?i,j;
for(i=0;irow;i++)
{
for(j=0;jclo;j++)
printf("%d?",nList[i][j]);
printf("\n");
}
}
void?setNum(int?**nList,int?n)
{
int?*p=nList[0];
printf("填寫矩陣中%d個(gè)數(shù)值:\n",n);
while(n--0)
scanf("%d",p++);
}
int?**getList(int?row,int?clo)
{
int?*nums,**nList,i;
nums=(int?*)malloc(sizeof(int)*row*clo);
nList=(int?**)malloc(sizeof(int*)*row);
for(i=0;irow;i++)
nList[i]=nums[i*clo];
return?nList;
}