python输入一个英文句子、求其中最长的单词的changd_数组练习

(1)3有以下程序

main()

{

int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7) if(p[i]%2)

j+=p[i];

printf("%d\n",j);

}

13+15+17=45;

程序运行后的输出结果是_B____。

A)42 B)45 C)56

D)60

(2)3有以下程序

main()

{

int p[8]={11,12,13,14,15,16,17,18},i=1,j=1;

while(i++<7) if(p[i]%2)

j+=p[i];

printf("%d\n",j);

}

13+15+17+1=46;

程序运行后的输出结果是__46___。

A)42 B)46 C)56

D)60

(3)3有以下程序

main()

{

int p[8]={11,12,13,14,15,16,17,18},i=0,j=1;

while(i++<7) if(p[i]%2)

j+=p[i];

printf("%d\n",j);

}

程序运行后的输出结果是___46__。

A)42 B)46 C)56

D)60

(4)3有以下程序

main()

{

int p[8]={11,12,13,14,15,16,17,18},i=1,j=0;

while(i++<7) if(p[i]%2)

j+=p[i];

printf("%d\n",j);

}

程序运行后的输出结果是__45___。

A)42 B)45 C)56

D)60

(5)以下叙述中错误的是__C___。

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数

(6)3有以下程序

main()

{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2){k=k+p[i];i++;}

printf("%d\n",k);

}

11+13 ,当执行了p[2]=14.不满足条件,就终止循环了

执行后输出结果是___24__。

A)58 B)56 C)45

D)24

(7)3有以下程序

main()

{ int p[7]={11,13,14,15,16,17,18},i=1,k=1;

while(i<7&&p[i]%2)

{k=k+p[i];i++;}

printf("%d\n",k);

}

13 + 1

执行后输出结果是__14___。

A)58 B)56 C)45

D)14

(8)1假定int类型变量占用两个字节,其有定义:int

x[10]={0,2,4};,则数组x在内存中所占字节数是__20___。

A)3 B)6 C)10

D)20

(9)1假定float类型变量占用四个字节,其有定义:float

x[10]={0.5,2.5,2.4};,则数组x在内存中所占字节数是___40__。

A)3 B)6 C)10

D)40

(10)1假定int类型变量占用两个字节,其有定义:int

x[5]={0,2,4};,则数组x在内存中所占字节数是____10_。

A)3 B)6 C)10

D)20

(13)1以下程序的输出结果是_____。

main()

{ int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf(“%d%d%d”,a[1],a[3],a[5]);

}

A)258 B)741 C)852

D)975

(14)1以下程序的输出结果是_____。

main()

{ int i, a[10];(16)2当调用函数时,实参是一个数组名,则向函数传送的是___B__。

A)数组的长度 B)数组的首地址

C)数组每一个元素的地址 D)数组每个元素中的值

(19)2若有以下调用语句,则不正确的fun函数的首部是_D___。

A)void fun(int m, int x[])

B)void fun(int s, int h[41])

C)void fun(int p, int *s)

D)void fun(int n, int a)

main()

{ …

int a[50],n;

fun(n, &a[9]);

}

(20)3以下程序的输出结果是B_____。

//顺序执行

main()

{ int i,k,a[10],p[3]:

k=5;

for(i=0;i<10;i++) a[i]=i;

for(i=0;i<3;i++) p[i]=a[i*(i+1)];

for(i=0;i<3;i++) k+=p[i]*2;

printf("%d\n",k);

}

A)20 B)21 C)22

D)23

21.设变量定义为“int s[ ]="hello\nworld\n";”,则数组s中有___B___个元素。

A、12 B、13

C、14 D、15

22.设变量定义为“int a[4];”,则表达式_D_____不符合C语言语法。(为何)

A、*a B、a[0]

C、a D、a++

(25)有以下程序

//编程

#include

main()

{

int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

for(i=0;i<12;i++)

c[s[i]]++;

for(i=1;i<5;i++)printf("%d",c[i]);

printf("\n");

}

程序的运行结果是(C)。

A)1 2 3 4 B)2 3 4 4

C)4 3 3 2 D)1 1 2 3

(26)若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是

( C)。

A)m[--i] B)m[2*2] C)m[m[0]]

D)m[m[i]]

(27)以下能正确定义一维数组的选项是(C )

A)int a[5]={0,1,2,3,4,5};

B)char a[]={0,1,2,3,4,5};

C)char a={'A','B','C'};

D)int a[5]="0123";

1.有m个人围成一圈,开始报数,报道n,退出,问最后剩下的是几号。(从1号开始)

比如:

输入:5 3

输出:

4

输入: 6 2

输出:

5

2. 输入两个数,第一个数决定一个nXn的矩阵,第二个数决定从1开始赋值,赋值的上限

比如:

输入:5 18

输出:

1 2 3 4 5

16 17 18 0 6

15 0 0 0 7

14 0 0 0 8

13 12 11 10 9

输入: 4 12

输出:

1 2 3 4

12 0 0 5

11 0 0 6

10 9 8 7

4..输入10个数,找出出现次数最多的数(如果多个并列,则按数字出现顺序分别输出)

比如:

输入:1 2 2 3 4 5 6 7 8 9

输出:2

数据结构:定义一个整型数组int count[10]存储每个元素的个数,开始时每个元素个数初始化为1

算法:

(1)利用双层循环,每一个元素都与后面一个元素比较,如果两者相同,则该元素次数+1,

(2)以上的算法中两个相同的元素的次数是一样的,优化如下,比较两个元素的时候,如果两者相等,则该元素次数+1,后面的元素次数设置为0,比较的时候再判断这个元素是否已经比较

伪代码:

定义数组保存每个元素次数

使用双层循环遍历数组

如果当前元素后后面元素相等,并且后面的元素次数不为0

当前元素次数+1,后面的元素次数设置为0

从保存每个元素次数的数组中查找最大的值

5.魔方阵是一个古老的智力问题,它要求在一个m*m的矩阵中填入1~m^2的数字(m为奇数),使得每一行、每一列、每条对角线的累加和都相等。请编程实现输入m,输出m*m的魔方阵出来。

比如:

输入:3

输出:

6 1 8

7 5 3

2 9 4

//(1)将1放在第一行中间一列;

//(2)从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1/减1(例如上面的三阶魔方阵,5在4的上一行后一列);

//(3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1;

//(4)当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如2在第3行最后一列,则3应放在第二行第一列;

//(5)如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。例如按上面的规定,4应该放在第1行第2列,但该位置已经被占据,所以4就放在3的下面;

1.给定某个字符数组,统计数组中所有英文字符的个数,比如“123fdd”中有3个。

2.给定某个字符数组,统计数组中所有英文字符和阿拉伯数字的个数,比如“123fdd”中有英文字符有 3个,数字3个。

3.给定某个拥有5个元素的字符数组,数组的成员都有阿拉伯字符构成,试着将该数组转换成一个整数,比如字符数组的内容是:{‘1’,’2’,’3’,’3’,’2’}则将被转换成12332。

4.给定一个完全由英文字符构成的数组,将数组中的小写字母转换成大写字母,大写字母转换成小写字母并输出。例如“abcGGG”转化为“ABCggg”。

5.给定一个完全由英文字符构成的数组,将数组中下标为偶数的字符都转换为大写(如果原来是大写则不变)。

6.给一个完全由英文字符构成的字符数组加密,加密原则如下,除了字符‘Z’和‘z’之外,每个字符变成 ASCII码值比它大 1的字符,也就是‘A’变成‘B’。‘Z’或者‘z’转化为‘A’或者‘a’。

###7.计算某个由英文、数字以及标点符号构成的数组的总宽度,其中英文字符的宽度为1cm,数字宽度为0.5cm、标点符号宽度为0.8cm。

8.接上题,如果规定行的宽度为10cm,将某个字符长度超过50的字符串截断,恰好

使10cm宽的行能容纳。输出这个被截断的子数组。

9.给定某个整型数组,计算该数组所有偶数的和。

10.给某个整型数组赋值,赋值规律如下,下标能被3整除的都赋值为1,能被5整除的都赋值为 2,能被7整除的都赋值为3,能被3、5、7任意两个或者3个都能整除的数赋值为 8,其余都赋值为0.

11.通过终端输入10个整数并将其保存在一个整型数组中,数字保存在数组中的顺序与下标正好相反,也就是第一个被输入的数放在数组最后一个元素中,最后一个输入 的数字放到第一个元素中。

12.通过终端输入10个整数,计算10个整数中所有能被3整除的数的合。

13.给定一个5个元素构成的整型数组,每个元素的值都在0-9之间,按照位置将其组成一个 5

位数并输出,例如 int a[5] = {1,2,2,3,7};则输出73221。

14.给定2个大小一样的整型数组,将某个数组作为源数组,另一个作为目的数组,然后将源数组的内容拷贝到目的数组。

16.给定一个整型数组,从第1个元素开始将相邻的两个元素分别相互交换。交换完后,第 1

个元素将变成最后一个元素,其余元素都前进一位。

a[5]={2,3,4,5,1}

17.给定一个有10个整形数的元素,将前5个元素跟后5 个元素做整体交换,比如

{1,1,1,1,1,2,3,2,2,2}->{2,3,2,2,2,1,1,1,1,1}。

18.判断一个整型数组是否是对称数组,例如{1,2,3,3,2,1}和{1,6,8,1,8,6,1}都是对称数组。

19.给定两个大小一样的整型数组,交换这两个数组的内容。

20.给定两个大小一样的整型数组,将两个数组中下标一样的元素两两相加,相加后的结果作为这两个数组对应下标的新值,也就是操作完毕后两个数组的内容完全相同。

21.给定一个能容纳10个元素的整型数组,现有9个元素,现在第5个元素的位置插入一个数字 88,后面的数字顺序后移。

22.给定一个10个元素的整型数组,现在将第2个元素删除,后面的数组顺序前移。

23.给定一个有100个元素的数组,查询数组中是否有元素的值等于某个数n。

24.给定一个整型数组,求该数组元素中最大值的下标。

25.给定一个整型数组,求该数组中第二大的数的下标。

26.给定一个整型数组,求该数组中数值小于10的元素的个数。

27.给定一个整型数组,计算大于该数组平均值的元素的个数。

28.给定一个整型数组,找到数组中的最小值,并将其放到数组的首元素中,原来首元素的内容放到最小值所在的元素中。

29.给定一个整型数组,统计某个整数在数组中出现的次数。

30.给定一个英文句子,单词之间用1个空格分开,求出第2个单词的偏移位置。例如“Professor du comes from Korea”的偏移位置是10。

31.给定一个英文句子,单词之间用1个空格分开,求其中所有单词的数量。

32.给定两个字符数组,将这两个拼接起来放在第一个数组中(假定第一个数组足够长),比如“abc”和“123”构成“abc123”。

33.将一个字符数组循环右移2位。比如”12345”->”45123”,假定字符数组中字符的数量大于 2.

34.给定一个整型数组,数组的长度为N(N>3),从数组中寻找一个连续的长度为3的子数组,要求该子数组的和最大。

35.给定两个长度一样的整型数组,判断两个数组是否相同,相同的原则是数组中的每 一个相互对应的元素的“和值”相同,“和值”是指元素对应的整数所有位的合,例 如:a[0]的值是1112,b[0]的值是23,则这两个元素“相同”。

36.给定两个字符数组,比较这两个字符数组的大小,比较的原则是字符数组中所有字 符的ASCII值相加后的和值,和值越大则字符数组越大。

37数组(求最大值及下标)定义一个整型数组,输入10个整数到数组中,并将数组中最大值及下标输出。

例如:

输入: 3 5 2 9 1 8 7 4 6 0

输出: 9 3

38.字符数组(正序输出)定义一个字符数组,输入10个字符到数组中,将字符数组内容逐个输出。

\

比如:

输入:A B C D E F G H I J

输出:A B C D E F G H I J

39.字符数组(逆序输出)定义一个字符数组,输入10个字符到数组中,将字符数组内容倒序输出。

\

比如:

输入:a b c d e f g h i j

输出:j i h g f e d c b a

40.有一个数组b[5] = {1,2,3,4,5};把这个数组拷贝到另外一个数组int a[5];中;

1.从键盘输入10个数存入数组,将这个数组逆序。(不是逆序输出)

2.从键盘输入5个整数,找出其中最大的数。

3.输入十个正整数,把这十个数按由小到大的顺序排列。

4.从键盘输入10个整数,检查整数3是否在这10个数中,若在的话它是第几个被输入的;

5输入一串小写字母(以"."为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出)。

41.编写函数将一个n*n矩阵转置,例如:(****)

1 2 3 4 1 5 3 4

5 6 7 8 -> 2 6 2 7

3 2 5 9 3 7 5 2

4 7 2 3 4 8 9 3

*/

42.

//杨辉三角输入n打印一个n行的杨辉三角

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

###43.围圈报数

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到m报数),凡报到m的人退出圈子,问最后留下的是原来第几号的哪位。(*****)

//1.计算某个由英文、数字以及标点符号构成的数组的总宽度,其中英文字符的宽度为1cm,数字宽度为0.5cm、标点符号宽度为0.8cm。

//2.接上题,如果规定行的宽度为10cm,将某个字符长度超过50的字符串截断,恰好使10cm宽的行能容纳。输出这个被截断的子数组。

#if 0

float jugechar(char ch)

{

if ((ch>='A'&& ch<='Z') || (ch>='a'&&ch<='z'))

{

return 1.0;

}

else if (ch>='0'&&ch<='9')

{

return 0.5;

}

else

{

return 0.8;

}

}

//"qianfeng"

int main(int argc,constchar * argv[])

{

char str[100];

float length=0.0;

int i=0;

/*scanf("%s",str);

int len= (int)strlen(str);

*/

while (scanf("%c",&str[i]),str[i]!='\n')

{

i++;

}

str[i]='\0';

int len = i+1;

for (i=0; i

length+=jugechar(str[i]);

if (length>10) {

str[i]='\0';

break;

}

}

printf("%s\n",str);

return 0;

}

#endif

//3.输入十个数,任意相邻的两个数不同,输出所有的递增,递减序列

//比如:

//输入:1 5 9 8 12 21 3 0 -1 9

//输出:

//1 5 9

//9 8

//8 12 21

//21 3 0 -1

//-1 9

//

//输入: 3 9 8 -11 4 21 8 -3 0 2

//输出:

//3 9

//9 8 -11

//-11 4 21

//21 8 -3

//-3 0 2

#if 0

int main(int argc,constchar *argv[])

{

int arr[10];

for (int i=0; i<10; i++) {

scanf("%d", &arr[i]);

}

printf("%d ", arr[0]);

for (int i=1; i<9; i++) {

printf("%d ",arr[i]);

if ((arr[i]>arr[i-1] && arr[i]>arr[i+1])||(arr[i]

) {

printf("\n");

printf("%d ",arr[i]);

}

}

printf("%d\n",arr[9]);

return 0;

}

#endif

//41.编写函数将一个n*n矩阵转置,例如:(****)

//1 2 3 4 1 5 3 4

//5 6 7 8 -> 2 6 2 7

//3 2 5 9 3 7 5 2

//4 7 2 3 4 8 9 3

//int a[3][3]

//

#if 0

void reverse(int *a[],int n)

{

for (int i=0; i

for (int j=i; j

int temp = a[i][j];

a[i][j]=a[j][i];

a[j][i]=temp;

}

}

}

int main(int argc,constchar *argv[])

{

int a[3][3]={

{1,2,3},

{4,5,6},

{7,8,9}

};

int *p[3];

for (int i=0; i<3; i++) {

p[i]=a[i];

}

reverse(p, 3);

/*for (int i=0; i<3; i++) {

for (int j=i; j<3; j++) {

if (i!=j)

{

int temp = a[i][j];

a[i][j]=a[j][i];

a[j][i]=temp;

}

}

}*/

for (int i=0; i<3; i++) {

for (int j=0; j<3; j++) {

printf("%d ", a[i][j]);

}

printf("\n");

}

printf("\n");

return 0;

}

#endif

//1.有m个人围成一圈,开始报数,报道n,退出,问最后剩下的是几号。(从1号开始)

//比如:

//输入:5 3

//输出:

//4

//

//输入: 6 2

//输出:

//5

#if 0

int main(int argc,constchar *argv[])

{

int a[20];

int m,n,cnt=0,k=0,i=0;

scanf("%d%d",&m,&n);

if (m<1 || m>20 || n<1) {

return -1;

}

for (int i=0; i

a[i]=i+1;

}

while (cnt < m-1)

{

if (a[i]) {

k++;

}

if (k==n) {

cnt++;

a[i]=0;

k=0;

}

i++;

if (i==m) {

i=0;

}

}

i=0;

while (a[i]==0) {

i++;

}

printf("%d\n",a[i]);

}

#endif

//2.输入两个数,第一个数决定一个nXn的矩阵,第二个数决定从1开始赋值,赋值的上限

//比如:

//输入:5 18

//输出:

//1 2 3 4 5

//16 17 18 0 6

//15 0 0 0 7

//14 0 0 0 8

//13 12 11 10 9

//

//输入: 4 12

//输出:

//1 2 3 4

//12 0 0 5

//11 0 0 6

//10 9 8 7

#if 0

int main(int argc,constchar *argv[])

{

int a[20][20]={};

int m,n;

inttype=1;//1:从左往右赋值,

2:从上往下赋值 3:从右往左赋值 4:从下往上

int s1,s2,s3,s4,i;//控制边界

scanf("%d%d",&n,&m);

if (n<0 || n>20 || m>n*n) {

return -1;

}

s1=n-1;

s2=n-1;

s3=0;

s4=1;

int p=0,q=0;//控制二维数组下标

for (i=1; i<=m; i++) {

a[p][q]=i;

switch (type) {

case 1://从左往右赋值

q++;

if (q==s1) {

type=2;

s1--;

}

break;

case 2:

p++;

if (p==s2) {

type=3;

s2--;

}

break;

case 3:

q--;

if (q==s3) {

type=4;

s3++;

}

break;

case 4:

p--;

if (p==s4) {

type=1;

s4++;

}

break;

default:

break;

}

}

for (int i=0; i

for (int j=0; j

printf("%4d", a[i][j]);

}

printf("\n");

}

printf("\n");

return 0;

}

#endif

//1 2 3 4 5 3 3 2 1 2 a[10]

//2 1 1 1 1 1 1 1 0 1 count[10]

//4..输入10个数,找出出现次数最多的数(如果多个并列,则按数字出现顺序分别输出)

//比如:

//输入:1 2 2 3 4 5 6 7 8 9

//输出:2

//数据结构:定义一个整型数组int count[10]存储每个元素的个数,开始时每个元素个数初始化为1

//

//算法:

//(1)利用双层循环,每一个元素都与后面一个元素比较,如果两者相同,则该元素次数+1,

//(2)以上的算法中两个相同的元素的次数是一样的,优化如下,比较两个元素的时候,如果两者相等,则该元素次数+1,后面的元素次数设置为0,比较的时候再判断这个元素是否已经比较

//

//伪代码:

//

//定义数组保存每个元素次数

//

//使用双层循环遍历数组

//如果当前元素后后面元素相等,并且后面的元素次数不为0

//当前元素次数+1,后面的元素次数设置为0

//

//从保存每个元素次数的数组中查找最大的值

#if 0

int main(int argc,constchar *argv[])

{

int a[10];

int cnt[10];

int max;

for (int i=0; i<10; i++) {

scanf("%d", &a[i]);

cnt[i]=1;

}

for (int i=0; i<10; i++) {

if (cnt[i]) {

for (int j=i+1; j<10; j++) {

if (a[j]==a[i]) {

cnt[i]++;

cnt[j]=0;

}

}

}

}

max = cnt[0];

for (int i=1; i<10; i++) {

if (cnt[i]>max) {

max = cnt[i];

}

}

for (int i=0; i<10; i++) {

if (max == cnt[i]) {

printf("%d ", a[i]);

}

}

printf("\n");

return 0;

}

#endif

//5.魔方阵是一个古老的智力问题,它要求在一个m*m的矩阵中填入1~m^2的数字(m为奇数),使得每一行、每一列、每条对角线的累加和都相等。请编程实现输入m,输出m*m的魔方阵出来。

//比如:

//输入:3

//输出:

//6 1 8

//7 5 3

//2 9 4

//(1)将1放在第一行中间一列;

//(2)从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1/减1(例如上面的三阶魔方阵,5在4的上一行后一列);

//(3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1;

//(4)当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如2在第3行最后一列,则3应放在第二行第一列;

//(5)如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。例如按上面的规定,4应该放在第1行第2列,但该位置已经被占据,所以4就放在3的下面;

int main(int argc,constchar *argv[])

{

int a[19][19]={};

int n;

int i,j,tempi,tempj;

int k=1;

scanf("%d",&n);

if (n<3||n%2==0||n>19)

{

return -1;

}

i=0;

j=n/2;

while (k<=n*n)

{

a[i][j]=k++;

tempi = i;

tempj = j;

i--;

j--;

if (tempi==0)

{

i=n-1;

}

if (tempj==0)

{

j=n-1;

}

if (a[i][j]) {

i=tempi+1;

j=tempj;

}

}

for (i=0; i

for (j=0; j

printf("%4d", a[i][j]);

}

printf("\n");

}

printf("\n");

return 0;

}

//数组的倒序操作

//int main(int argc, const char *argv[])

//{

// int score[5];

// for (int i=4; i>=0; i--) {

// scanf("%d",&score[i]);

// }

// for (int i=0; i<5; i++) {

// printf("%d ", score[i]);

// }

// printf("\n");

// return 0;

//}

//数组不能越界访问

//int main(int argc, const char *argv[])

//{

// int a=100, b=0;

// int score[5];

// for (int i=0; i<=5; i++) {

// scanf("%d",&score[i]);

// }

//

// //printf("%p %p",&score[4],&a);

// for (int i=0; i<10; i++) {

// printf("%d ",score[i]);

// }

// printf("a=%d b=%d\n",a,b);

//

// printf("\n");

// return 0;

//}

//数组初始化

//定义一个数组后,如果不初始化,那么数组的值是未定义的;

//完全初始化:把数组中的每个成员都给初值;

//int main(int argc, const char *argv[])

//{

// int a[10]={1,2,3,4,5,6,7,8,9,10};

// for (int i=0; i<10; i++) {

// printf("%d ", a[i]);

// }

// return 0;

//}

//部分初始化:只对数组部分元素赋初值

//int main(int argc,const char *argv[])

//{

// int a[10]={1,2,3};

// for (int i=0; i<10; i++) {

// printf("%d ",a[i]);

// }

// return 0;

//}

//数组初始化为0;

//int main(int argc,const char *argv[])

//{

// //int a[10]={};

//

// int a[10]={0};

// for (int i=0; i<10; i++) {

// printf("%d ", a[i]);

// }

// return 0;

//}

//求学生的平均成绩

//int main(int argc,const char *argv[])

//{

// int score[10]={};

// int sum=0;

// char ch;

// int i;

// for (i=0; i<10; i++) {

// scanf("%d%c", &score[i],&ch);

// sum+=score[i];

// if (ch=='\n') {

// break;

// }

// }

// printf("average = %d\n", i<10?sum/(i+1):(sum/i));

//

// return 0;

//}

//斐波那契数列

//输出斐波那契数列的前20项

// 1 1 2 3 5 8 13 21 34 55 89 ....

// a[n]=a[n-1]+a[n-2]

//int main(int argc,const char *argv[])

//{

// int a[20]={1,1};

// for (int i=2; i<20; i++) {

// a[i]=a[i-1]+a[i-2];

// }

//

// for (int i=0; i<20; i++) {

// printf("%d ", a[i]);

// }

// printf("\n");

//

// return 0;

//}

//输入10个数据,查找该数据中的最大数,并将其输出到屏幕上

//int main(int argc,const char *argv[])

//{

// int a[10]={};

// for (int i=0; i<10; i++) {

// scanf("%d", &a[i]);

// }

// int max=a[0];

// for (int i=1; i<10; i++) {

// if (a[i]>max) {

// max = a[i];

// }

// }

// printf("%d\n", max);

//

// return 0;

//}

//查找某个数值打印数值下标

//#include

//int main(int argc,const char *argv[])

//{

// int a[10]={0};

// int i,val;

// int flag=0;

// for (i=0; i<10; i++) {

// scanf("%d",&a[i]);

// }

// printf("请输入要查找的数值: ");

// scanf("%d",&val);

// for (i=0; i<10; i++) {

// if (a[i]==val) {

// flag =1;

// printf("%d ",i);

// }

// }

// if (!flag) {

// printf("没有该数值");

// }

// printf("\n");

//

// return 0;

//}

//字符数组

//"qianfeng"

//

//char str[20]

//int main(int argc,const char *argv[])

//{

// int a[10]={};

// printf("%p\n",a);//数组名是一个地址常量

// printf("%p\n",&a[0]);

// printf("%p\n",&a);

//

// return 0;

//}

//int main(int argc,const char *argv[])

//{

// //char str[20]="hello world";

// //char str[10]={'h','e','l','l','o'};

// char str[11]="helloworld";

//

// printf("%s\n", str);

// return 0;

//}

//

//#include

//int main(int argc,const char *argv[])

//{

// int i,num,a[6]={};//注意数组宽度为6

// for (i=0; i<5; i++) {

// scanf("%d",&a[i]);

// }

// scanf("%d",&num);

// printf("\n");

// for (i=4;i>=0;i--)

// {

// if (a[i] > num)

// {

// a[i+1]=a[i];//大于数值,的依次后移

//

// if(a[i==0]>num)//当a[0]大于num时,直接把num赋给a[0]

// {a[i]=num;}

// }

//

//

//

// else

// {

// a[i+1]=num;

// break;//num大于所有的数值,把[5]直接赋给num,跳出循环

// }

// }

//

//

//

// for(i=0;i<6;i++)

// {

// printf("%d\n",a[i]);

// }

// return 0;

//

//}

//

//输入一个大写字母,如F

//

//比如:

//

//输入:F

//

//输出:

//

//A

//

//ABA

//

//ABCBA

//

//ABCDCBA

//

//ABCDEDCBA

//

//ABCDEFEDCBA

//输入:C

//

//输出:

//

//A

//

//ABA

//

//ABCBA

//#include

//int main(int argc,const char *argv[])

//{ char ch;

// int i,j;

// scanf("%c",&ch);

// for(i=0;i

// {

// for(j=0;j<=i;j++){

// printf("%c",'A'+j);

// }

//

// for (j=i;j>0; j--) {

// printf("%c",j+'A'-1);

// }

//

// printf("\n");

// }

//

// return 0;

//}

//输入一个大写字母,如F,输出

//比如:

//输入:F

//输出:

//F

//EFE

//DEFED

//CDEFEDC

//BCDEFEDCB

//ABCDEFEDCBA

//

//输入:D

//输出:

//D

//CDC

//BCDCB

//ABCDCBA

//

//#include

//int main(int argc,const char *argv[])

//{ char ch;

// int i,j;

// scanf("%c",&ch);

// for(i=0;i

// {

// for(j=i;j>=0;j--){

// printf("%c",ch-j);

// }

//

// for (j=0;j

// printf("%c",ch-j-1);

// }

//

// printf("\n");

// }

//

// return 0;

//}

//#include //n的阶乘之和

//int main(int argc,const char *argv[])

//{

// int sum=0,i,n,temp=1;

// scanf("%d",&n);

// for(i=1;i<=n;i++)

// {

// temp*=i;

// sum+=temp;

// }

// printf("%d",sum);

// return 0;

//}

//使用嵌套循环产生下列图案:输入底边长n

//比如:

//输入:F

//输出:

//F

//FE

//FED

//FEDC

//FEDCB

//FEDCBA

//

//输入:C

//输出:

//C

//CB

//CBA

//#include

//int main(int argc,const char *argv[])

//{ char ch;

// int i,j;

// scanf("%c",&ch);

// for(i=0;i

// {

// for(j=0;j<=i;j++){

// printf("%c",ch-j);

// }

//

//

// printf("\n");

// }

//

// return 0;

//}

//省约数组长度,必须初始化

//int a[]={1,2,3};

//int main(int argc, const char * argv[])

//{

// int a[]={1,2,3,4};

// printf("%ld\n",sizeof(a));

//

// return 0;

//}

#define LEN10

//

//int main(int argc,const char *argv[])

//{

// int a[LEN]={};

// for (int i=0; i

// scanf("%d",&a[i]);

// }

//

// for (int i=0; i

// printf("%d ", a[i]);

// }

// return 0;

//}

//数组排序

//冒泡排序

//从小到大

//9 8 7 6 5 ===> 5 6 7 8 9

//第一次排序,交换4次

//8 9 7 6 5

//8 7 9 6 5

//8 7 6 9 5

//8 7 6 5 9

//第二次排序交换3次

//7 8 6 5 9

//7 6 8 5 9

//7 6 5 8 9

//第三次排序交换2次

//6 7 5 8 9

//6 5 7 8 9

//第四次排序交换1次

//5 6 7 8 9

#if0

voidsort_array(inta[],intlen)

{

for(inti=0; i

{

for(intj=0; j

{

if(a[j]>a[j+1])

{

inttemp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

}

intmain(intargc,constchar*argv[])

{

inta[LEN]={9,8,7,6,5};

for(inti=0; i

scanf("%d",&a[i]);

}

sort_array(a,LEN);

for(inti=0; i

printf("%d ",a[i]);

}

return0;

}

#endif

#if0

//选择排序

//9 8 7 6 5 ===> 5 6 7 8 9

//第一次

//5 8 7 6 9

//第二次

//5 6 7 8 9

//第三次

//5 6 7 8 9

//第四次

//5 6 7 8 9

//8 7 5 6 4

//4 7 5 6 8

//4 5 7 6 8

//4 5 6 7 8

//4 5 6 7 8

voidsort(inta[],intlen)

{

for(inti=0; i

{

intk=i;//保存最小值下标

for(intj=i+1; j

{

if(a[k]>a[j])

{

k=j;

}

}

if(k!=i)

{

inttemp=a[i];

a[i]=a[k];

a[k]=temp;

}

}

}

intmain(intargc,constchar*argv[])

{

inta[LEN]={};

for(inti=0; i

scanf("%d",&a[i]);

}

sort(a,LEN);

for(inti=0; i

printf("%d ",a[i]);

}

printf("\n");

return0;

}

#endif

#if0

//插入法

//9 8 6 7 5 ==> 5 6 7 8 9

//int temp =8

//9 9 6 7 5

//8 9 6 7 5

//temp = 6;

//8 8 9 7 5

//6 8 9 7 5

//temp = 7;

//6 8 8 9 5

//6 7 8 9 5

//temp = 5;

//6 6 7 8 9

//5 6 7 8 9

voidarray_sort(inta[],intlen)

{

for(inti=0; i

inttemp = a[i+1];

// int j=i;

// while (j>=0 && a[j]>temp) {

// a[j+1]=a[j];

// j--;

// }

intj=i;

for(; j>=0&& a[j]>temp; j--) {

a[j+1]=a[j];

}

a[j+1]=temp;

}

}

intmain(intargc,constchar*argv[])

{

inta[LEN]={};

for(inti=0; i

scanf("%d",&a[i]);

}

array_sort(a,LEN);

for(inti=0; i

printf("%d ", a[i]);

}

printf("\n");

return0;

}

#endif

//二维数组

//int a[10]

//int a[5][6];

//把二维数组看成由一维数组组成的数组

//a[i][j]

//int main(int argc,const char *argv[])

//{

// int a[3][2]={};

// for (int i=0; i<3; i++) {

// for (int j=0; j<2; j++) {

// scanf("%d",&a[i][j]);

// printf("%d ",a[i][j]);

// }

// }

//

// printf("\n");

// printf("%ld\n", sizeof(a));

// return 0;

//}

//int main(int argc,const char *argv[])

//{

// //int a[2][3]={1,2,3,4,5,6};

// int a[2][3]={{1,2,3},

// {4,5,6}};

//

// for (int i=0; i<2; i++) {

// for (int j=0; j<3;j++) {

// printf("%d ", a[i][j]);

// }

// }

//

// return 0;

//}

// 1

// 1 1

// 1 2 1

//1 3 3 1

//1 4 6 4 1

//1 5 10 10 5 1

//int main(int argc, const char *argv[])

//{

// int a[10][10]={};

//

// for (int i=0; i<10; i++) {

// for (int j=0; j<=i; j++)

// {

// if (j==i || j==0)

// {

// a[i][j]=1;

// }

// else

// {

// a[i][j]=a[i-1][j]+a[i-1][j-1];

// }

// printf("%4d", a[i][j]);

//

// }

// printf("\n");

// }

//

// return 0;

//}

intmain(intargc,constchar*argv[])

{

inta[10][10]={};

for(inti=0; i<10; i++)

{

for(intj=0; j<=i; j++)

{

if(j==i || j==0)

{

a[i][j]=1;

}

else

{

a[i][j]=a[i-1][j]+a[i-1][j-1];

}

}

}

for(inti=0; i<10; i++) {

printf("%*d",24-2*i, a[i][0]);

for(intj=1; j<=i; j++) {

printf("%4d", a[i][j]);

}

printf("\n");

}

return0;

}

分享到:

2016-02-19 16:47

浏览 58

评论


版权声明:本文为weixin_39974882原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。