自学C语言-视频-张鹏伟-1:50:39

自学C语言-视频-张鹏伟-1:50:39,第1张

自学C语言-视频-张鹏伟-1:50:39

磕磕绊绊终于把这个完成了↓↓↓

有一个最大的疑问:为何在函数中定义指针数组需要static?

#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include

#define PASSWORD " "

char *s_gets(char *p,int n);
short checkpassword();
long factorial(int n);
long factorials(int n);
long *long_p_num(int n);
char **char_p_num(int n);
short searchnumber(short n,char **pi);
void shownumber(char *p);

int main()
{
	
	if(!checkpassword())
		exit(1);
	
	int num=0;
	short index=0;
	long *ipnum=NULL;
	char **cpnum=NULL;
	
	fputs("Input the number:",stdout);
	scanf("%d",&num);//待补充判断循环
	while(getchar()!=10);
	printf("%d的阶乘是:%ld.n",num,factorial(num));
	printf("%d的递减阶乘和是:%ld.n",num,factorials(num));
	
	ipnum=long_p_num(num);
	cpnum=char_p_num(num);
	fputs("显示整型数组:{",stdout);
	for(int i=0;i0;
		chance--,printf("Please input the password,(%d chance left)nPassword:",chance))
	{
		if(s_gets(input,5)&&!strcmp(input,PASSWORD))
		{
			fputs("Right!!!n",stdout);
			return 1;
		}
		else
			fputs("Wrong!Again!n",stdout);
		if((chance)==1)//是否可以改良掉这段代码?
			break;
	}
	fputs("No chance left!ProgramOver!n",stdout);
return 0;}

long factorial(int n)//计算阶乘
{
	long sum;
	for(sum=1;n>0;n--)
		sum*=n;
return sum;}

long factorials(int n)//计算递减阶乘和
{
	long sums;
	for(sums=0;n>0;n--)
		sums+=factorial(n);
return sums;}

long *long_p_num(int n)//整数数组存储
{
	long *p_num=(long *)calloc(n,sizeof(long));
	for(int i=0,i1=n;i0;lenth++)
			copy/=10;
		pctemp[i]=(char *)calloc(lenth+1,sizeof(char));		
		_itoa(itemp,pctemp[i],10);
	}
return pctemp;}

short searchnumber(short n,char **pi)
{
	short index=0;
	char ctemp[10]={0};
	for(fputs("Input the number you wanna show(NothingQuit).nnumber:",stdout);
		!index;
		fputs("Couldn't found the number,try another one(NothingQuit).nnumber:",stdout),index=0)
	{
		if(!s_gets(ctemp,10))
			return 0;
		for(;index 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5502356.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存