c语言第四讲之数组
一、定义一维数组
int a[5];
int a[5]={2,4,6,8,10}
↓
int a[5];
a[0]=2;
a[1]=4;
a[2]=6;
a[3]=8;
a[4]=10;
int a[5]={2,4,6,}
↓
int a[5];
a[0]=2;
a[1]=4;
a[2]=6;
a[3]=0;
a[4]=0;
1.倒序输出
#include<stdio.h>
int main()
{
int i,a[10]={0,1,2,3,4,5,6,7,8,9} ;
for(i=9;i>=0;i–)
{
printf("%d\t",a[i]);
}
return 0;
}
2.
输入10个数字。对他们由小到大的顺序排序后的结果。
23 45 56 34 12
#include<stdio.h>
int main()
{
int a[10];
int i,j,k;
printf("请输入五个数:\n");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<8;i++)
for(j=i+1;j<=9;j++)
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
printf("排序后的的面积\n");
for(i=0;i<=9;i++)
printf("%d\t",a[i]);
printf("\n");
return 0;
}
二、定义二维数组
int a[2][3]={{1,2,3}{4,5,6}};→简化int a[2][3]={1,2,3,4,5,6};
↓
int a[2][3];
a[0][0]=1;
a[0][1]=2;
a[0][2]=3;
a[1][0]=4;
a[1][1]=5;
a[1][2]=6;
1.将一个二维数组
a=
1 2 3
4 5 6
的行列元素互换,存到另一个二维数组b并输出
#include<stdio.h>
int main()
{
int a[2][3]={1,2,3,4,5,6};
int b[3][2];
int i,j;
for(i=0;i<=1;i++)
for(j=0;j<=2;j++)
b[j][i]=a[i][j];
printf("数组b为:\n");
for(j=0;j<=2;j++)
{
for(i=0;i<=1;i++)
printf("%d\t",b[j][i]);
printf("\n");
}
return 0;
}
三、定义字符数组
char c[10]{‘i’,‘f’,‘t’,‘h’,‘t’,‘y’,‘q’,‘v’,’ ‘,‘r’};
↓
char c[10];
c[0]=‘i’;
c[1]=‘f’;
c[2]=‘t’;
c[3]=‘h’;
c[4]=‘t’;
c[5]=‘y’;
c[6]=‘q’;
c[7]=‘v’;
c[8]=’ ';
c[9]=‘r’;
四、输出字符数组
1.挨个输出printf(“%c”,)
①定义一个字符串“kn shuai”,然后输出这个字符串
#include<stdio.h>
int main()
{
char c[8]={‘k’,‘n’,’ ',‘s’,‘h’,‘a’,‘i’};
int i;
for (i=0;i<=7;i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
②输出一个图案
***
’* ‘ ‘‘
‘’**
#include<stdio.h>
int main()
{
char c[3][3]={’ ‘,’’,’ ‘,’’,’ ‘,’’,’ ‘,’’,’ '};
int i,j;
for (i=0;i<=2;i++){
for(j=0;j<=2;j++)
printf("%c",c[i][j]);
printf("\n");
}
return 0;
}
2.整体输出printf (“%s”,)或者puts()
①#include<stdio.h>
int main()
{
char c[8]={‘k’,‘n’,’ ',‘s’,‘h’,‘u’,‘a’,‘i’};
printf("%s",c);
return 0;
}
②#include<stdio.h>
int main()
{
char c[9]={‘k’,‘n’,’ ‘,‘s’,‘h’,‘u’,‘a’,‘i’,’\0’};
puts©;
return 0;
}
五、输入字符数组
注意:
只能提取除了空格以外的字符
①挨个单词输入scanf(“%s%s…”,)
注意:
只能提取除了空格以外的字符
1.键盘输入“ I am kn”
②整句输入gets()
#include<stdio.h>
int main()
{
char c[12]
gets©;
return 0;
}
练习:
输入一行由空格和单词组成的字符(80以内),请统计有多少个单词
#include<stdio.h>
int main()
{
char c[81];
int i,d=1;
gets©;
if(c[0]==’ ‘)
d=0;
for (i=0;c[i]!=’\0’;i++){
if(c[i]==' '&&c[i+1]!=' '&&c[i+1]!='\0')
d++;
}
printf("有%d个\n",d);
return 0;
}