C語言練習(xí)


[例6.7] 將3×2矩陣轉(zhuǎn)置,如下由A矩陣轉(zhuǎn)置后得B矩陣。
main()
{ int a[3][2]={{1,4},{2,5},{3,6}};
int b[2][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
b[j][i]=a[i][j];
for(i=0;i<2;i++)
{ for(j=0;j<3;j++)
printf("%4d",b[i][j]);
printf("\n");
}
}

[例6.8] 求4×4矩陣的主對角線元素之和。
方法1:使用雙重循環(huán)
main()
{ int a[4][4],i,j,sum=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
? ? if(i==j)sum=sum+a[i][j];
printf("Sum=%d\n",sum);
}
方法2:使用單循環(huán)
main()
{
int a[4][4],i,j,sum=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
sum=sum+a[i][i];
printf("Sum=%d\n",sum);
}

[例6.9] 把鍵盤上輸入的兩個字符串按從大到小的順序輸出。
#include <string.h>
main()
{ char s1[80],s2[80],t[80];
printf("請輸入兩個字符串:\n"); /* 可寫成:puts("請輸入兩個字符串:"); */
gets(s1);
gets(s2);
if(strcmp(s1,s2)<0)
{ strcpy(t,s1);
strcpy(s1,s2);
strcpy(s2,t);
}
printf("從大到小的順序為:\n");
puts(s1);
puts(s2);
}

[例6.10.1] 將一個字符串復(fù)制到另一個字符串中,即完成strcpy函數(shù)的功能。
先判斷后賦值
main()
{? char str1[]="China",str2[80];
? ?int i;
? ?for(i=0;str1[i]!='\0';i++)
str2[i]=str1[i];
? ?str2[i]='\0';
? ?printf("%s",str2);
}

[例6.10.2] 將一個字符串復(fù)制到另一個字符串中,即完成strcpy函數(shù)的功能。
先賦值后判斷
main()
{? char str1[]="China",str2[80];
? ?int i;
? ?for(i=0;(str2[i]=str1[i])!='\0';i++);
? ?printf("%s",s1);
}

