1.全局变量和局部变量的使用
习题
#include<stdio.h>
int arr[5][5]={
1,2,5,5,4,
7,8,5,6,4,
7,5,6,9,1,
5,6,4,5,4,
5,5,4,3,8
};
//矩阵转换
void fun(int m,int n)
{
printf("将第%d行和第%d行交换\n",n,m);
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==n-1)
{
printf("%d ",arr[m-1][j]);
}else if(i==m-1)
{
printf("%d ",arr[n-1][j]);
}else
{
printf("%d ",arr[i][j]);
}
}
printf("\n");
}
}
//每位数的乘积小于和的数
void Test1()
{
int i;
printf("\n每位数的乘积小于和的数有:");
for(i=1;i<100;i++)
{
if(i>=10)
{
if((i/10)*(i%10)<i/10+i%10)
{
printf("%d ",i);
}
}
}
}
//红白黑球 17 19 20
void RWB(char q)
{
printf("\nr代表红球,w代表白球,b代表黑球\n");
printf("请输入其中必有%c球\n",q);
int i,j,k,n=0;
if(q=='r'||q=='w'||q=='b')
{
for(i=0;i<=3;i++)
{
for(j=0;j<=5;j++)
{
for(k=0;k<=6;k++)
{
if(k+i+j==8)
{
if(q=='r'&&i==0)
{
break;
}else if(q=='w'&&j==0)
{
break;
}else if(q=='b'&&k==0)
{
break;
}
n++;
printf("红球%d个,白球%d个,黑球%d个",i,j,k);
printf("\n");
}
}
}
}
}else{
printf("输入的指令不正确\n");
}
printf("一共有%d种\n",n);
}
//分数前n项和
int Test3(int n)
{
if(n<=1)
{
return 1;
}
return Test3(n-2)+Test3(n-1);
}
void Nfun(int n)//输出第3题结果
{
printf("\n\n分数前%d项和位:%d/%d\n",n,Test3(n+1),Test3(n));
}
//把一个4*3的数组,转换成3*4的数组
void ChangeArr()
{
printf("\n倒转之后为:\n");
int arr[4][3]={{3,4,8},{9,5,7},{3,2,5},{0,1,6}};
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",arr[j][i]);
}
printf("\n");
}
}
void main()
{
fun(1,5);
Test1();
Nfun(20);
ChangeArr();
RWB('b');
}