例6.1 对十个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出
代码
#include<stdio.h>
int main()
{
int i, a[10];
for (i = 0; i <= 9; i++)
{
a[i] = i;
}
for (i = 9; i >= 0; i--)
{
printf("%3d", a[i]);
}
printf("\n");
return 0;
}
结果
例6.2 用数组来处理求Fibonacci数列问题
代码
#include<stdio.h>
int main ()
{
int i;
int f[20]={1,1};
for (i=2;i<=20;i++)
f[i]=f[i-2]+f[i-1];
for (i=0;i<20;i++)
{
if (i%5==0)
printf ("\n");
printf ("%12d",f[i]);
}
printf ("\n");
return 0;
}
结果
例6.3 冒泡顺序:有十个地区的面积,要求对它们按由小到大的顺序排列
代码
#include <stdio.h>
int main()
{
int a[10];
int j,i,t;
printf ("input 10 numbers:\n");
for (i=0;i<10;i++)
scanf ("%d",&a[i]);
printf ("\n");
for (j=0;j<9;j++)
for (i=0;i<9-j;i++)
{
if (a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf ("the second numbers:\n");
for (i=0;i<10;i++)
printf ("%d",a[i]);
printf ("\n");
return 0;
}
}
结果
例6.4 将一个二维数组行和列的元素互换存到另一个二维数组中
代码
/*例6.4 将一个二维数组行和列的元素互换存到另一个二维数组中,例如:a={1 2 3 } b={1 4 }
4 5 6 2 5
3 6*/
#include <stdio.h>
int main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b [3][2],i,j;
printf ("array a:\n");
for (i=0;i<=1;i++)
{
for (j=0;j<=2;j++)
{
printf ("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf ("\n");
}
printf ("array b:\n");
for (i=0;i<=2;i++)
{
for (j=0;j<=1;j++)
printf ("%5d",b[i][j]);
printf ("\n");
}
return 0;
}
结果
例6.5有一个三乘四的矩形要求编程序,求出其中值最大的那个元素的值,以及其所在的行号和列号
代码
/*例6.5有一个三乘四的矩形要求编程序,求出其中值最大的那个元素的值,以及其所在的行号和列号*/
#include<stdio.h>
int main()
{
int i, j;
int max, row, colum;
int a[3][4] = { { 1, 2, 3, 4 }, { 9, 8, 7, 6 }, { -10, 10, -5, 2 } };
max = a[0][0];
for (i = 0; i < 3; i++)
for (j = 0; j < 4; j++)
if (max < a[i][j])
{
max = a[i][j];
row = i;
colum = j;
}
printf("max=%d row=%d colum=%d\n", max, row, colum);
return 0;
}
结果
例6.6 输出一个已知的字符串
代码
#include <stdio.h>
int main ()
{
char c[15]={'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t'};
int i;
for (i=0;i<15;i++)
printf ("%c",c[i]);
printf ("\n");
return 0;
}
结果
例6.8 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
代码
#include<stdio.h>
int main()
{
char string[81];
int i,count=0,word=0;
char c; gets(string);//输入一个字符串给字符数组string
for (i = 0;(c=string[i])!='\0'; i++)
{
if (c == ' ')//如果是空格字符,使word置0
{
word = 0;
}
else if (word == 0)//如果不是空格字符,且word原来的值为0,使word置1
{
word = 1;
count++; }
}
printf("count=%d\n",count);
return 0;
}
结果
例6.9 有三个字符串,要求找出其中最大者
代码
#include <stdio.h>
#include <string.h>
int main()
{
char m[3][50], max[50];
for (int i=0; i<3; gets(m[i]), i++);
strcmp(m[0], m[1])>0?strcpy(max, m[0]):strcpy(max, m[1]);
strcmp(m[2], max)>0?strcpy(max, m[2]):strcpy(max, max);
printf("Max=%s\n", max);
return 0;
}
结果