/**************************************************
1、输出九九乘法表,9行9列,i控制行,j控制列
/**************************************************
2、有一对兔子,从出生后第三个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不
死,问每个月的兔子总数是?
/**************************************************
3、判断100-150之间有多少个素数,并输出这些素数
素数的特点:用该数去除 2到sqrt(该数+1),如果能被整除,
就说明不是素数;反之,则是。
**************************************************/
/**************************************************
4、如果一个数是它的基数之和,则将该数称为完数;如6=1+2+3;
输出1000之内的所有完数
/**************************************************
5、将一个4*4的数组进行逆时针旋转90度后输出,要求原始
数组的数据随机输入,新数组以4行4列的方式输出
**************************************************/
/**************************************************
6、编程打印杨辉直角三角形
**************************************************/
1、输出九九乘法表,9行9列,i控制行,j控制列
**************************************************/
#include<stdio.h>
void main()
{
int i,j,result;
for(i=1;i<=9;i++)
{
for(j=i;j<=9;j++)
{
result=i*j;
printf("%d*%d=%-3d ",i,j,result);
}
printf("\n\n");
}
getchar();
}
/**************************************************
2、有一对兔子,从出生后第三个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不
死,问每个月的兔子总数是?
(先算法再编程的思想,先把规律找出来,再写相应的程序)
兔子的规律为数列1,1,2,3,5,8,13,21...
**************************************************/
#include<stdio.h>
void main()
{
int i;
long c1,c2;
c1=c2=1;
for(i=1;i<20;i++)
{
printf("%-12ld%-12ld",c1,c2);
if(i%2==0)//每行打印4个,每次输出有两个值
printf("\n");
c1=c1+c2;
c2=c1+c2;//此时c1值已变
}
getchar();
}
/**************************************************
3、判断100-150之间有多少个素数,并输出这些素数
素数的特点:用该数去除 2到sqrt(该数+1),如果能被整除,
就说明不是素数;反之,则是。
**************************************************/
#include<stdio.h>
#include<math.h>
void main()
{
int i,j,count=0,judge=1;
double m;
for(i=100;i<150;i++)
{
m=sqrt(double(i+1));
for(j=2;j<m;j++)
{
if(i%j==0)//如果i不是素数,并且及时退出
{
judge=0;
break;
}
}
if(judge)
{
printf("%-6d",i);
count++;
if(count%10==0)//每行输出10个
printf("\n");
}
judge=1;//再次将judge默认为是素数
}
printf("total:%d",count);
getchar();
}
/**************************************************
4、如果一个数是它的基数之和,则将该数称为完数;如6=1+2+3;
输出1000之内的所有完数
**************************************************/
#include<stdio.h>
void main()
{
int i,j,count,sum;
count=sum=0;
for(i=1;i<1000;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0)
sum=sum+j;//基数相加
}
if(i==sum)
{
printf("%d\n",i);
count++;
if(count%10==0)
printf("\n");
}
sum=0; //新一轮计算,sum重置为0
}
printf("total:%d",count);
getchar();
}
/**************************************************
5、将一个4*4的数组进行逆时针旋转90度后输出,要求原始
数组的数据随机输入,新数组以4行4列的方式输出
**************************************************/
#include<stdio.h>
void main()
{
int i,j,a[4][4],b[4][4];
printf("enter 16 number:\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
b[3-j][i]=a[i][j];//旋转90度
}
}
printf("array b:\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%-3d",b[i][j]);//输出左对齐
printf("\n");
}
getchar();
}
/**************************************************
6、编程打印杨辉直角三角形
**************************************************/
#include<stdio.h>
void main()
{
int i,j,a[6][6];
for(i=0;i<6;i++)
{
a[i][i]=1;
a[i][0]=1;
}
for(i=2;i<6;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i<6;i++)
{
for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
printf("\n");
}
getchar();
}