学习编程的第五天

计算Pi的值

fabs()是用来求浮点数的绝对值的,abs()是用来求整型的绝对值的

本题中的n必须设置为浮点型,如果设置为整型那么程序就有可能出现错误。因为t是浮点型的,s是整型,只有n是浮点型才能将格式强制转化为浮点型。

#include<stdio.h>
#include<math.h>
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<stdio.h>
#include<math.h>
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<stdio.h>
#include<math.h>
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<stdio.h>
#include<math.h>
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<stdio.h>
#include<math.h>
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<stdio.h>
#include<math.h>
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<stdio.h>
#include<math.h>
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<stdio.h>
#include<math.h>
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<stdio.h>
#include<math.h>
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<stdio.h>
#include<math.h>
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");
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值