将一个二维数组行和列元素互换,存到另一个二维数组中
程序代码如下:
#include<stdio.h>
int main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%5d",b[i][j]);
printf("\n");
}
return 0;
}
运行结果:
1 2 3
4 5 6
1 4
2 5
3 6
--------------------------------
Process exited after 0.2794 seconds with return value 0
请按任意键继续. . .
注意:二维数组的输出,换行问题。
使用printf( )函数输出整个字符组。
程序代码如下:
#include<stdio.h>
int main()
{
char c[]="China";
printf("%s\n",c);
return 0;
}
或者
#include<stdio.h>
int main()
{
char c[10]={'I',' ','a','m',' ','a',' ','b','o','y'};
int i;
for(i=0;i<10;i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
注意:在本例的printf( )函数中,使用的格式字符串为%s,表示输出的是一个字符串,输出时遇结束符‘\0‘就停止输出,输出字符不包括结束符‘\0’,输出结果为China。而在输出列表中给出数组名即可,不能写为:
Printf(“%s”,c[]);
也不可以是数组元素名,如:
Printf(“%s”,c[2]);
如果数组长度大于字符串的实际长度,也只输出到遇到‘\0’的时结束。例如:
char c[10]=”China”;
只输出China5个字符,而不是输出10个字符,这就是用字符串结束标志的好处。如果一个字符数组中包含一个以上的’\0’则遇第一个’\0’时输出结束。
用scanf( )函数输入多个字符串。
程序代码如下:
#include<stdio.h>
int main()
{
char st1[6],st2[6],st3[6],st4[6];
scanf("%s%s%s%s",st1,st2,st3,st4);
printf("%s %s %s %s\n",st1,st2,st3,st4);
return 0;
}
从键盘输入:
this is a book
则输出:
this is a book
--------------------------------
Process exited after 9.148 seconds with return value 0
请按任意键继续. . .
注意:scanf( )函数中的输入项是字符数组名,不要加地址符&,因为在C语言中数组名代表该数组的起始地址,如下面的写法是错误的:
scanf(“%s”,&str);
函数声明示例。
程序代码如下:
#include<stdio.h>
int main()
{
int a,b,c;
a=3,b=4;
c=sum(a,b);
printf("c=%d",c);
return 0;
}
int sum(int x,int y)
{
int s;
s=x+y;
return 0;
}
运行结果:c=0
--------------------------------
Process exited after 0.3762 seconds with return value 0
请按任意键继续. . .
注意:对函数的定义和声明不是一回事。函数的定义是指对函数功能的确立,包括指定函数名、函数值的类型、型参及其类型、函数体等,它是一个完整的、独立的函数单位。而函数的声明的作用则是把函数的名字、函数的类型以及形参的类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查。