计算Pi的值
fabs()是用来求浮点数的绝对值的,abs()是用来求整型的绝对值的
本题中的n必须设置为浮点型,如果设置为整型那么程序就有可能出现错误。因为t是浮点型的,s是整型,只有n是浮点型才能将格式强制转化为浮点型。
#include
#include
void main()
{
float pi,t,n;
int s;
s=1;
n=1.0;
t=1;
pi=0;
while(fabs(t)>1e-6)
{
pi=pi+t;
s=-s;
n=n+2;
t=s/n;
}
pi=pi*4;
printf("the pi's zhi is %10.6f",pi);
}
求斐波那契数列的值:
思路:因为是前两个数相加得到后一个数的值,因此用c来存放原本的a,再计算。
#include
#include
void main()
{
int i,a,b,c;
a=1;
b=1;
for(i=1;i<2;i++)
{
c=a;
a=a+b;
b=c;
}
printf("the fbnc is %d\n",a);
}
#include
#include
void main()
{
int i,a[20];
a[0]=1;
a[1]=1;
for(i=2;i<20;i++)
{
a[i]=a[i-1]+a[i-2];
}
for(i=0;i<20;i++)
{
printf("%d\n",a[i]);
}
}
求素数:
思路:输入一个数k,求出它的平方根m,并且用2-m去除以k,如果一直除不尽说明是素数。
#include
#include
void main()
{
int i,k,j,m;
printf("please input a number:\n");
scanf("%d",&k);
m=sqrt(k);
for(i=2;i<=m;i++)
{
j=m%i;
if(j==0)
{
break;
}
}
if(i>m)
{
printf("the number %d is prime number\n",k);
}
else
{
printf("the number %d is not prime number\n",k);
}
}
进阶版:判断100-200之间所有数是否为素数:
#include
#include
void main()
{
int i,k,j,m;
for(k=100;k<=200;k++)
{
m=sqrt(k);
for(i=2;i<=m;i++)
{
j=m%i;
if(j==0)
{
break;
}
}
if(i>m)
{
printf("the number %d is prime number\n",k);
}
else
{
printf("the number %d is not prime number\n",k);
}
}
}
冒泡排序法将输入的一组数据由小到大输出。
思路:第一层循环规定比较的趟数,因为有n个数,因此需要n-1趟的循环比较;第二个循环规定的每一趟比较的次数,n个数的第i趟循环需要两两比较n-j次。
#include
#include
void main()
{
int i,j,a[10],t;
printf("please input ten number\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%d\n",a[i]);
}
}
五个人三门不同课程的成绩,求各个科目的平均值。
#include
#include
void main()
{
int i,j;
float m=0;
int a[3][5]={{80,61,59,85,76},{75,65,63,87,77},{92,71,70,90,85}};
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
m=m+a[i][j];
}
m=m/5.0;
if(i==0)
{
printf("the math's average is %f\n",m);
}
else if(i==1)
{
printf("the C's average grade is %f\n",m);
}
else
{
printf("the Foxpro's average grade is %f\n",m);
}
}
}
将a[2][3]改为b[3][2]
#include
#include
void main()
{
int i,j;
int b[3][2];
int a[2][3]={{1,2,3},{4,5,6}};
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
b[j][i]=a[i][j];
}
}
for(j=0;j<3;j++)
{
for(i=0;i<2;i++)
{
printf("%d",b[j][i]);
}
printf("\n");
}
}
将3*4矩阵中的最大值输出,并输出横坐标和纵坐标
#include
#include
void main()
{
int i,j,x,y,max;
int a[3][4];
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
}
max=a[0][0];
x=0;
y=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
x=i;
y=j;
}
}
}
printf("the max is %d,the x-relx is %d,the y-relx is %d",max,i,j);
}
从键盘输入九个数变成a[3][3]的形式,只保留第一行第一列的数,其他的用空格代替。
#include
#include
void main()
{
int i,j;
int a[3][3];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(i==0 && j!=1 )
{
printf(" ");
}
else if(i==2 && j!=1)
{
printf(" ");
}
else
{
printf("%d",a[i][j]);
}
}
printf("\n");
}
}