c语言练习(大一寒假 一)

母牛的故事

题目要求:有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

根据题目要求得出:
在第一年应该是两头牛,但是根据题目所给出的答案可总结以下表格:
年份 1 2 3 4 5 6 7 8 9
母牛数量 1 2 3 4 6 9 13 19 28
则可以总结出规律:f(n)=f(n-1)+f(n-3)n>3的情况
联想:斐波那契数列的公式:fn=fn-1+fn-2(n>2)

#include<stdio.h>
int hanshu(int n)
{
	if(n<=3)
		return n+1;
	else 
		return hanshu(n-1)+hanshu(n-3);
}
int main()
{
	int n;
	int sum;
	while(scanf("%d",&n)!=0)
	{
		sum=hanshu(n);
		printf("%d\n",sum);
	}
}

数字的处理与判断

题目要求:给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

位数问题

浮点型也是可以表示整形。所以就可以得到所输入的数字串的长度。

分别输出每位数

第一种是用取余的方法进行实现题目要求,根据之前得到的字符串长度然后除10的倍数
第二种是用数组进行存储,然后从数组的第一位开始输出
注意输出的格式问题

逆输出

可以是取余,也可以是数组逆输出。

#include<stdio.h>
#include<string.h>
int main()
{
	char a[10];
	int i,n;
	scanf("%s",a);//&a[10]  &a 
	n=strlen(a);
	printf("%d\n",n);

	for(i=0;i<n;i++)
	{
		printf("%c ",a[i]);
	}
	printf("\n");
	for(i=n-1;i>=0;i--)
	{
		printf("%c",a[i]);
	}
	
}

字符串分类统计

题目要求:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

#include<stdio.h>
#include<string.h>
int main()
{
	char str[100];
	int n,i;
	gets(str);
	n=strlen(str);
	int a,b,c,d;//注意初始值的赋值0 
	for(i=0;i<n;i++)
	{
		if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')
			a++;
		else if(str[i]>='0'&&str[i]<='9')
			b++;
		else if(str[i]==' ')//==若写作=结果出错,最后两项相加 
			c++;
		else
			d++;	
	}
	printf("%d %d %d %d",a,b,c,d);
 } 

Sn求和

题目要求:求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。

#include<stdio.h>
int main()
{
	int n,i,sum=2;
	int Sn=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		Sn=Sn+sum;
		sum=sum*10+2;
	}
	printf("%d",Sn);
}

水仙花数

题目要求:打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1 ^ 3+5^ 3+3^3。

#include<stdio.h>
int main()
{
	int a,b,c;
	int hundred,ten,one;
	
	for(a=100;a<1000;a++)
	{
		one=a%10;
		b=a/10;
		ten=b%10;
		c=b/10;
		hundred=c%10;
if(a==hundred*hundred*hundred+ten*ten*ten+one*one*one)
		{
			printf("%d\n",a);
		}
	}
}

迭代法

题目要求:用迭代法求 平方根
求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数

#include"stdio.h"
#include"math.h"                      //包含fabs()函数的头文件,别忘了加
int main()
{
    int a;
    double x=1.0,x1;
    printf("请输入需要计算的数\n");
    scanf("%d",&a);
    do
    {
        x1=x;
        x=(x1+a/x1)/2;
    }
    while(fabs(x-x1)>1E-5);           //fabs()绝对值函数
    printf("%lf",x);
    return 0;
}

注意:C语言求绝对值的函数为abs( x )与fbs( x ),abs( x )包含于stdlib.h,且两者均包含于math头文件之下。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值