磕磕绊绊终于把这个完成了↓↓↓
有一个最大的疑问:为何在函数中定义指针数组需要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;i 0; 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;i 0;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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)