C语言作业笔记(累加和阶乘,倒叙输出,折半法,统计输入类型,猜数游戏)

编程计算

累加和阶乘的嵌套
程序框架参考课本P131页的例8.3, 函数f1用来计算左括号 i 平方 加 1 右括号 階層, 函数f2用来计算一个整数的阶乘,在主函数中循环调用f1求和,f1的实现需要调用f2, 函数中所有变量均定义为int型。
上传程序源代码和运行结果截图 (计算结果应为3628922)

#include <stdio.h>
int f1(int n);
int f2(int q);
int main()
{
	int i,c,b=0;
	for(i=1;i<=3;i++)
	{
		f1(i);
		c=f1(i);
		b+=c;
	}
	printf("%d\n",b);
}
int f1(int n)
{
	int a;
	int m=(n*n+1);
	f2(m);
	a=f2(m);
	return a;
}
int f2(int q)
{
	int p;
	int sum=1;
	for(p=q;p>=1;p--)
		sum*=p;
	return sum;
}

例如:输入12345输出54321

     输入-12345输出-54321

将程序源代码和运行结果截图上传

#include<stdio.h>
void turn(int c)
{
	if (c > 0) {
		if (c / 10 == 0)
		{
			printf("%d", c);  
		}
		else
		{
			printf("%d", c % 10);
			turn(c / 10);
		}
	}
	if (c < 0)
	{
		c = -c;
		printf("-");
		if (c / 10 == 0)
		{
			printf("%d", c);  
		}
		else
		{
			printf("%d", c % 10);
			turn(c / 10);
		}
	}
}
int main() 
{
	int n;
	while(1){
	printf("请输入:");
	scanf_s("%d", &n);
	printf("倒叙后为:\n");
    turn(n);
	}
}
}

折半法查找数组数据位置

#include <stdio.h>
#define M 5
int fun(int b[],int n)
{
	int low=0,high=M-1,mid;
	while(low<=high)
	{
		mid=low+(high-low)/2;
		if(n<b[mid])
			high=mid-1;
		else if(n>b[mid])
			low=mid+1;
		else
			return mid;
	}
	return (-1);
}
main()
{
	int i,b[M]={9,13,45,67,89},j,n;
	printf("b 数组中的数据如下:");
	for(i=0;i<M;i++)
	printf("%d,",b[i]);
	while(1){
		printf("Enter n:");
	scanf("%d",&n);
	j=fun(b,n);
	if(j>=0)
		printf("n=%d,index=%d\n",n,j);
	else
		printf("Not be found!\n");
	}
}

用实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,并将统计结果存放在一个整型数组中,在主函数中输入字符串,调用此函数,然后输出统计结果。

void   count(char x[ ],int m[ ])

{
	int i;
	for(i=0;x[i]!='\0';i++)
	{
		if((x[i]>='A' && x[i]<='Z') || (x[i]>='a' && x[i]<='z'))
		m[0]++;
		else if(x[i]>='0' && x[i]<='9')
		m[1]++;
		else if(x[i]==' ')
		m[2]++;
		else
			m[3]++;
	}
}

#include <stdio.h>

int main( )

{  char str[80];

   int n[4]={0};

   int i;

  puts("Please enter a string:");

  gets(str);

  count(str,n);

  printf("字母有%d个\n",n[0]);

   printf("数字有%d个\n",n[1]);

   printf("空格有%d个\n",n[2]);

   printf("其他字符有%d个\n",n[3]);

}

猜数游戏

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void game();
int main()
{
	game();
}
int number()
{
	int number;
	srand(time(0));
	number = rand()%100+1;
	return number;
}
void game()
{
	int guess,i=0;
	int m=number();
	do{
		printf("猜猜这个1到100间的数:");
		scanf("%d",&guess);
		printf("%d",guess);
		i++;
		if(guess>m)
			printf("你猜的数大了\n");
		else if(guess<m)
			printf("你猜的数小了\n");
	}while(guess!=m);
		printf("你用了%d次猜对了\n",i);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值