admin 管理员组

文章数量: 887021


2024年1月4日发(作者:二维数组的矩阵是什么样的)

1. 从键盘任意输入20个整数,用冒泡法排序后,由大到小输出显示。

#include

int main()

{

int a[20],i,j,t;

printf("请任意输入20个整数n");

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

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

printf("n");

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

for(j=0;j<19-i;j++)

if(a[j]

{

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

}

printf("按照从大到小的顺序排列为n");

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

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

printf("n");

return 0;

}

2. 从键盘任意输入20个整数,用选择法排序后,由大到小输出显示。#include

#define N 20

int main()

{

int a[N],i,j,max,k;

printf("请任意输入20个整数n");

for(i=0;i

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

printf("n");

for(i=0;i

{

k=i;

for(j=i+1;j

if(a[i]

k=j;

max=a[k];

a[k]=a[i];

a[i]=max;

}

printf("按照从大到小的顺序排列为n");

for(i=0;i

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

printf("n");

return 0;

}

3. 从键盘任意输入10个实数,用冒泡法排序后,由小到大输出显示。

4. 从键盘任意输入10个实数,用选择法排序后,由小到大输出显示。

5. 编写程序实现功能:从键盘任意按下1个按键(字母、数字和标点符号键),程序能够识别按键的种类,并输出显示(如显示:你按下的是字母键!)。

#include

int main()

{

char x;

printf("从键盘任意按下1个按键n");

x=getchar();

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

printf("你输入的是字母键n");

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

printf("你输入的是数字键n");

else printf("你输入的是字符键");

return 0;

}

6. 输出所有的“水仙花数”,“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。

#include

int main()

{

int x,a,b,c;

for(a=1;a<9;a++)

{

for(b=0;b<10;b++)

{

for(c=0;c<10;c++)

{

x=a*100+b*10+c;

if(x==a*a*a+b*b*b+c*c*c)

printf("%dn",x);

}

}

}

return 0;

}

#include

int main()

{

int x,a,b,c;

for(x=100;x<1000;x++)

{

a=x/100;

b=(x/10)%10;

c=x%10;

if(x==a*a*a+b*b*b+c*c*c)

printf("%dn",x);

else continue;

}

return 0;

}

7. 一球从50m高度自由落下,每次落地后反向跳回原高度的一半,再落下,求

它在第10次落地时,共经过多少m?

#include

int main()

{

float a=50,s=50;

int i;

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

{

a=a/2;

s+=a*2;

}

printf("%fn",s);

return 0;

}

8. 一球从100m高度自由落下,每次落地后反向跳回原高度的一半,再落下,求它第9次反弹多高?

#include

int main()

{

float a=100,s=100;

int i;

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

{

a=a/2;

s+=a*2;

}

printf("%fn",a);

return 0;

}

9. 从键盘任意输入一个 4×4的矩阵,求出其中的最小值及其所在的行号和列号。

#include

int main()

{

int a[4][4];

int i,j,k,m,n;

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

for(j=0;j<4;j++)

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

k=a[0][0];

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

for(j=0;j<4;j++)

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

{

k=a[i][j];

m=i;

n=j;

}

printf("最小值为%d,行号为%d,列号为%dn",k,m,n);

return 0;

}

10. 从键盘任意输入一个 4×4的矩阵,求出其中的最大值及其所在的行号和列号。

11. 从键盘任意输入一个 4×4的矩阵,完成对矩阵的转置。

#include

int main()

{

int a[4][4],b[4][4];

int i,j;

printf("请输入4×4的矩阵n");

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

for(j=0;j<4;j++)

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

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

for(j=0;j<4;j++)

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

printf("转置矩阵");

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

{for(j=0;j<4;j++)

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

printf("n");}

return 0;

}

12. 从键盘任意输入一个 4×4的矩阵,求所有元素的平均值。#include

int main()

{

int a[4][4];

int i,j;

float sum=0,b;

printf("请输入4×4的矩阵n");

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

for(j=0;j<4;j++)

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

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

for(j=0;j<4;j++)

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

b=sum/16;

printf("%fn",b);

return 0;

}

13. 从键盘任意输入100个整数,找出最大值和最小值。

#include

#define N 100

int main()

{

int a[N],i,min,max;

printf("请输入100个整数n");

for(i=0;i

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

max=min=a[0];

for(i=0;i

{

if(min>a[i])min=a[i];

if(max

}

printf("最大值为%d,最小值为%dn",max,min);

return 0;

}

14. 用循环法编程,计算输出任意整数n!。

#include

int main()

{

int a,i,b=1;

printf("请输入一个整数n");

scanf("%d",&a);

for(i=1;i<=a;i++)

b=b*i;

printf("%dn",b);

return 0;

}

15. 用递归法编程,计算输出任意整数n!。

#include

int main()

{

int fac(int n);

int n;

int y;

printf("请输入一个整数n");

scanf("%d",&n);

y=fac(n);

printf("%d的阶乘为%dn",n,y);

return 0;

}

int fac(int n)

{

int f;

if(n<0)

printf("n<0,data error!");

else if(n==0||n==1)

f=1;

else f=fac(n-1)*n;

return(f);

}

16. 用静态局部变量法,计算输出任意整数n!。

#include

int main()

{

int bbb(int n);

int a,m,i;

printf("请输入一个整数n");

scanf("%d",&a);

if(a==0)m=1;

else {for(i=1;i<=a;i++)

m=bbb(i);}

printf("%d的阶乘为%dn",a,m);

return 0;

}

int bbb(int n)

{

static int s=1;

s=s*n;

return(s);

}

17. 求200以内的质数并输出结果。

#include

int main()

{

int a,i;

for(a=3;a<=200;a++)

{

for(i=2;i

}

return 0;

}

18. 求100-200以内的质数并输出结果。

#include

int main()

{

int a,i;

for(a=100;a<=200;a++)

{

}

for(i=2;i

if(a%i==0)break;

if(i>=a) printf("%dn",a);

if(a%i==0)break;

if(i>=a) printf("%dn",a);

return 0;

}

19. 用循环的方法构造一个3行3列的二维数组,使对角线上的元素为1,其他位置上的元素为0,按行列形式输出二维数组。

输出格式为: 1 0 0

0 1 0

0 0 1

#include

int main()

{

int a[3][3],i,j;

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

{

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

{

if(i==j) a[i][j]=1;

else a[i][j]=0;

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

}

printf("n");

}

return 0;

}

20. 用循环的方法构造一个4行4列的二维数组,使主对角线上的元素为1,次对角线上的元素为-1.其他位置上的元素为0,按行列形式输出二维数组。

输出格式为: 1 0 0 -1

0 1 -1 0

0 -1 1 0

-1 0 0

#include

int main()

{

int a[4][4],i,j;

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

{

for(j=0;j<4;j++)

{

if(i==j) a[i][j]=1;

else if(i+j==3) a[i][j]=-1;

else a[i][j]=0;

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

}

printf("n");

}

1

return 0;

}

21.用循环的方法构造一个3行3列的二维数组,使主对角线及下三角阵中的元素为1,.其他位置上的元素为0,按行列形式输出二维数组。

输出格式为: 1 0 0

1 1

1 1

#include

int main()

{

int a[3][3],i,j;

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

{

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

{

if(i>=j) a[i][j]=1;

else a[i][j]=0;

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

}

printf("n");

}

0

1

return 0;

}

22.用循环的方法构造一个4行4列的二维数组,使主对角线上的元素为0,下三角阵中的元素为1,.其他位置上的元素为-1,按行列形式输出二维数组。

输出格式为: 0 -1 -1 -1

1

1

1

#include

int main()

{

int a[4][4],i,j;

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

{

for(j=0;j<4;j++)

{

if(i==j) a[i][j]=0;

else if(i>=j) a[i][j]=1;

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

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

}

printf("n");

0 -1

1 -1

1 1

-1

-1

0

}

return 0;

}

23.编写程序,输出由1~N*N的整数组成的N阶方阵的上三角阵。例如,N=3输出:

1 2 3

5 6

9

#include

#define N 3

int main()

{

int i,j,k=1;

int a[N][N];

for(i=0;i

for(j=0;j

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

for(i=0;i

{for(j=0;j

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

else printf("%c",' ');

printf("n");}

return 0;

}

24.编写程序,输出由1~N*N的整数组成的N阶方阵的下三角阵。例如,N=3输出:

1

4 5

7 8 9

#include

#define N 3

int main()

{

int i,j,k=1;

int a[N][N];

for(i=0;i

for(j=0;j

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

for(i=0;i

{for(j=0;j

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

else printf("%c",' ');

printf("n");}

return 0;

}

25.编写程序,输出由1~N*N的整数组成的N阶方阵的主对角线元素。例如,N=3输出:

1

5

9

#include

#define N 3

int main()

{

int i,j,k=1;

int a[N][N];

for(i=0;i

for(j=0;j

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

for(i=0;i

{for(j=0;j

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

else printf("%c",' ');

printf("n");}

return 0;

}

26.编写程序,计算输出由1~N*N的整数组成的N阶方阵的主对角线元素之和。例如,N=3输出: 15

#include

#define N 3

int main()

{

int i,j,k=1,m=0;

int a[N][N];

for(i=0;i

for(j=0;j

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

for(i=0;i

{for(j=0;j

if(i==j)

m=m+a[i][j];}

printf("主对角线元素之和为%dn",m);

return 0;

}

27.编写程序,计算输出由1~N*N的整数组成的N阶方阵的对角线元素之和。例如,N=3输出: 30

#include

#define N 3

int main()

{

int i,j,k=1,m=0;

int a[N][N];

for(i=0;i

for(j=0;j

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

for(i=0;i

for(j=0;j

{if(i==j)

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

if(i+j==N-1)

m=m+a[i][j];}

printf("对角线元素之和为%dn",m);

return 0;

}

28.求这样的三位数,该三位数等于其每位数字的立方之和。即#include

abc=a3+b3+c3

int main()

{

int x,a,b,c;

for(x=100;x<1000;x++)

{

a=x/100;

b=(x/10)%10;

c=x%10;

if(x==a*a*a+b*b*b+c*c*c)

printf("%dn",x);

else continue;

}

return 0;

}

29.求这样的三位数,该三位数等于其每位数字的阶乘之和。即abc=a!+b!+c!

#include

int main()

{

int fac(int n);

int x,a,b,c;

for(x=100;x<1000;x++)

{

a=x/100;

b=(x/10)%10;

c=x%10;

if(x==fac(a)+fac(b)+fac(c))

printf("%dn",x);

else continue;

}

return 0;

}

int fac(int n)

{

int f;

if(n<0)

printf("n<0,data error!");

else if(n==0||n==1)

f=1;

else f=fac(n-1)*n;

return(f);

}

30. 编程实现按顺序输出10~99之间的所有能被7整除的数。

#include

int main()

{

int a;

for(a=10;a<=99;a++)

{

if(a%7==0)

printf("%dn",a);

}

return 0;

}

31.判断用户输入的密码是否正确(假设密码为123456)。如果正确则显示“欢迎使用本软件!”;若密码不正确,则显示“密码不正确,请重新输入!”。密码输入错误时,允许用户重复输入三次,如果三次均不正确,则显示“对不起,您不能使用本软件!”。

#include

#include

int main()

{

int i,n;

char a[10]={"123456"},b[10];

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

{puts("请输入六位密码n");

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

{b[i]=getch();

putchar('*');}

b[6]=0;

printf("n");

if(strcmp(a,b)==0)

{puts("欢迎使用本软件!");break;}

else puts("密码不正确,请重新输入!");

}

32.在一次比赛中,有8个评委为参赛的选手打分,分数为1到100分。选手最后得分为去掉一个最高分和一个最低分后其余6个分数的平均值。请编写一个程序实现。

#include

int main()

{

float score[8],max,min,a=0,b;

int i,j,k,m;

printf("请输入8个评委的打分n");

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

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

}

if(n==3)puts("对不起,您不能使用本软件!");

return 0;

max=min=score[0];

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

{

if(min>score[i])min=score[i];

if(max

}

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

a=a+score[i];

b=(a-min-max)/6;

printf("这个选手的最终得分为:%.2fn",b);

return 0;

}

33.输入一个正整数n(n≥4), 计算s = 1!+2!+…+n!的值。

#include

int main()

{

int jiecheng(int);

int s=0,n,i;

printf("请输入一个大于4的整数n");

scanf("%d",&n);

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

s=s+jiecheng(i);

printf("%dn",s);

return 0;

}

int jiecheng(int n)

{

int m;

if(n==1)m=1;

else m=n*jiecheng(n-1);

return m;

}

34.写一个函数,求一个字符串中数字字符的个数。在主函数中输入字符串,并输出其数字字符的个数。

35.将一个4×4矩阵转置。在主函数中用scanf输入矩阵元素,将数组名作函数参数,在子函数中实现矩阵转置,在主函数中输出转置后的矩阵。

#include

void main()

{

//int daozhi(int b[][4]);

void daozhi(int b[][4]);

int a[4][4];

int *p;

//int *q;

int i,j;

//q=a[0];

//scanf("%d",q++);

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

for(j=0;j<4;j++)

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

daozhi(a);

for(p=a[0];p

{if((p-a[0])%4==0)printf("n");

printf("%d",*p);}

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

//for(j=0;j<4;j++)

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

}

void daozhi(int b[][4])

{

int i,j,k[4][4];

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

for(j=0;j<4;j++)

k[i][j]=b[j][i];

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

for(j=0;j<4;j++)

b[i][j]=k[i][j];

//return k;

}

36.写一个函数,求一个字符串中数字字符的个数。在主函数中输入字符串,并输出其数字字符的个数。

运行示例:

输入:a123x456

输出:6

#include

#include

void main()

{

char a[81],*p;

int n=0;

puts("请输入字符串");

p=a;

gets(p);

for(;*p!=0;p++)

{

if(*p>='0'&&*p<='9')

n=n+1;

}

printf("字符串中数字的个数为:%d",n);

}

37. 数组a是一个3×3矩阵。在主函数中用scanf输入矩阵元素,将数组名作函数参数,在子函数中实现将矩阵中最大的元素放在中心,然后在主函数中输出数组元素。

运行示例:

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

输出:1 2 3

4 9 6

7 8 5

#include

int main()

{

void paixu(int b[][3]);

int i,j,a[3][3];

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

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

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

paixu(a);

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

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

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

printf("n");}

return 0;

}

void paixu(int b[3][3])

{

int max,i,j,k,m,t;

t=b[0][0];

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

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

if(t

{t=b[i][j];

k=i;m=j;}

max=b[k][m];

b[k][m]=b[1][1];

b[1][1]=max;

}

38.有三个学生四门课程的成绩,计算并输出每个学生的平均成绩及总的平均成绩。

#include

#include

#define N 3

#define S 4

void aver(int);

struct student

{

float score[S];

}class1[N];

int main()

{

int i,j,k;

float b;

static float total=0;

for(i=0;i

for(j=0;j

{printf("输入第%d名同学的第%d门成绩:n",i+1,j+1);

scanf("%f",&class1[i].score[j]);

}

printf("输入要查询的学生序号n");

k=i+1;

scanf("%d",&k);

aver(k);

for(i=0;i

for(j=0;j

total=total+class1[i].score[j];

b=total/(N*S);

printf("总的平均成绩为:%.2f",b);

}

void aver(int n)

{

int m;

float s=0,av;

for(m=0;m

s=s+class1[n-1].score[m];

av=s/S;

printf("这名同学的平均成绩为:}

%.2f",av);


本文标签: 输出 输入 元素 任意 整数