admin 管理员组

文章数量: 887062


2024年1月18日发(作者:osi七层模型数据封装)

1、从键盘上输入10个整数,将10个整数逆序输出。

分析:将10个整数存入数组x,逆序输出就是从x[9]开始,输出到x[0]

#include

#define M 10

main()

{int x[M],n;

printf("输入10个整数:n");

for(n=0;n

scanf("%d",&x[n]);

printf("按输入相反的顺序输出为:n");

for(n=M-1;n>=0;n--)

printf("%dt",x[n]);

return 0;

}

2、计算并输出一维数组{9.8,12,45,67,23,19.8,2.55,45,37.5}中最大值、最小值和平均值

数组长度为9,把最大、最小值初始化为第一个数组元素,从第二个元素开始与最大、最小值比较获得最大、最小值。

#include

#define M 9

main()

{float x[]={9.8,12,45,67,23,19.8,2.55,45,37.5};

float max,min,sum=0;

int n;

max=min=x[0];

for(n=1;n

{max= max

min= min>x[n]?x[n]:min;

sum+=x[n];}

printf("数组中的最大值是=%.2f,最小值是=%.2fn",max,min);

printf("数组中各元素的平均值=%.2fn",sum/M);

return 0;

}

3、从键盘上输入10个整数,计算其中的奇数的个数并输出。

先输入10个整数x[n],然后对数组从头扫描找出奇数(x[n]%2)并输出

#include

#define M 10

main()

{int x[M],n,cnt=0; //cnt是奇数计数器

printf("输入10个整数:n");

for(n=0;n

scanf("%d",&x[n]);

printf("其中的奇数有:n");

for(n=0;n

if (x[n]%2) cnt++,printf("%dt",x[n]);

printf("n奇数数量有:%d个",cnt);

return 0;

}

4、输入10个学生的成绩,统计高于平均分的人数。

先输入10个成绩并计算平均分,然后逐个扫描数组元素并与平均分比较。

#include

#define M 10

main()

{float x[M],ave,sum=0;

int n,cnt=0; //cnt是奇数计数器

printf("输入10个学生的成绩:n");

for(n=0;n

{scanf("%f",&x[n]);

sum+=x[n];}

ave=sum/M;

for(n=0;n

if (x[n]>ave) cnt++;

printf("n高于平均分%.2f的有:%d人n",ave,cnt);

return 0;

}

5、输入10个学生3门课程的成绩,统计各科全部及格的人数。

先通过双重循环输入10行3列共30个数据,然后按行扫描 3个数据均大于30的人数

#include

#define M 5

#define N 3

main()

{float x[M][N];

int m,n; //m控制行号,n控制列号

int cnt=0; //cnt是计数器

printf("输入10个学生3门课的成绩:n");

for(m=0;m

for(n=0;n

scanf("%f",&x[m][n]);

for(m=0;m

if (x[m][0]>60 && x[m][1]>60 &&x[m][2]>60)

cnt++;

printf("n3门课程全部及格的共有%d人。n",cnt);

return 0;

}

6、编写一个程序,将两个字符串连接起来,不要使用strcat函数。

分析:定义一大一小两个字符数组s1和s2,输入两个字符串后,确定s1结束的位置,然后把s2的字符依次取出连接到s1的后边。

#include

main()

{char s1[100],s2[50]; //定义一大一小两个字符数组s1,s2

int m,n;

gets(s1);

gets(s2); //输入两个字符串s1,s2

for(m=0;(s1[m]!='0');m++); //找到S1字符串’0’的位置

for(n=0;(s2[n]!='0');n++)

s1[m]=s2[n],m++; //取出s2一个字符连接到s1后边

s1[m]='0';

puts(s1); //输出新的s1

}

7、编写一个程序,求字符串长度,不要使用strlen()函数。

分析:输入字符串存入数组,然后扫描数组到’0’

#include

main()

{char s1[100];

int m,len=0;

puts("请输入一段文本:") ;

gets(s1);

for(m=0;(s1[m]!='0');m++)

len++ ;

printf("你输入的字符串长度=%dn",len);

}

8.编写一个程序,对用户输入的一个字符串,将大写字母循环右移五位

#include

main()

{char s[100];

gets(s);

int n=0;

while(s[n]!='0')

{ if (s[n]>='A'&&s[n]<='Z')

{s[n]=s[n]+5;

if(s[n]>'Z') s[n]=s[n]-26;}

n++;}

puts(s);

}

9.编写一个程序对用户输入的任意一组数字,输出其中出现次数最多的数字,并显示其出现次数。

#include

main()

{int x[20]={1,2,1,3,2,2,3,5,4,2,2,3,4,5,2,3,5,3,2,3};

int y,cnt,cnt2; //y是要寻找的数,cnt是该数的次数,cnt2是每一个数出现次数

int m,n;

for(m=0;m<20;m++)

{cnt2=1; //当前数出现次数回到1

{for(n=m+1;n<20;n++)

if(x[n]==x[m]) cnt2++;

if (cnt2>cnt) cnt=cnt2, y=x[m];}

}

printf("出现次数最多的是:%d 出现了%d次",y,cnt);

}

10.计算并输出杨辉三角前10行

//输出等腰三角形

#include

#define M 10

#define N 10

main()

{int x[M][N]={0},m,n,i;

for(m=0;m

x[m][0]=1;

for(m=1;m

for(n=1;n

x[m][n]=x[m-1][n]+x[m-1][n-1];

for(m=0;m

{for(i=0;i<10-m;i++)

printf(" ");

for(n=0;n

if(x[m][n]) printf("%5d",x[m][n]);

printf("n");

}

}

//输出为直角三角形

#include

#define M 10

#define N 10

main()

{int x[M][N]={0},m,n,i;

for(m=0;m

x[m][0]=1;

for(m=1;m

for(n=1;n

x[m][n]=x[m-1][n]+x[m-1][n-1];

for(m=0;m

{for(n=0;n

if(x[m][n]) printf("%-4d",x[m][n]);

printf("n");

}

}

11.定义一个6*6的矩阵,将其主对角线上的元素置1,次对角线上的元素置-1,其他置0,行输出。

#include

#define M 6

#define N 6

main()

{int x[M][N]={0},m,n,i;

for(m=0;m

x[m][m]=1;

for(m=0;m

x[m][M-m-1]=-1;

for(m=0;m

{for(n=0;n

printf("%4d",x[m][n]);

puts("");}

}

12. 输出波那契数列前20项,如1,1,1,2,3……

#include

main( )

{int fb[20]={1,1};

int n;

for(n=2;n<20;n++)

fb[n]=fb[n-1]+fb[n-2];

puts("斐波那契数列前20项依次是:");

for(n=0;n<20;n++)

{printf("%dt",fb[n]);

if((n+1)%5==0) printf("n"); }

}


本文标签: 输入 输出 数组 字符串 元素