C语言练习


[例6.7] 将3×2矩阵转置,如下由A矩阵转置后得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:使用双重循环
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:使用单循环
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] 将一个字符串复制到另一个字符串中,即完成strcpy函数的功能。
先判断后赋值
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] 将一个字符串复制到另一个字符串中,即完成strcpy函数的功能。
先赋值后判断
main()
{ char str1[]="China",str2[80];
int i;
for(i=0;(str2[i]=str1[i])!='\0';i++);
printf("%s",s1);
}

