首页 > 代码库 > C函数调用

C函数调用

  1 #include<stdio.h>  2 #include<time.h>  3 #include<math.h>  4 #include<stdlib.h>  5   6 int No=-1;        //功能选择标志  7   8 void HomePage();                            //首页  9 void FunctionSelection();                    //功能选择 10 void MultiplicationTable();                    //九九乘法表 11 void YanghuiTriangle();                        //杨辉三角 12 void IntLeapYear();                            //判断闰年 13 void LettersPyramid_1();                    //字母金字塔(1) 14 void LettersPyramid_2();                    //字母金字塔(2) 15 void GCD_LCM();                                //最大公约数最小公倍数 16 void Josephus();                            //约瑟夫环 17 void JudgePrime();                            //判断素数 18 void NarcissisticNumber();                    //水仙花数 19 void PrimeFactors();                        //分解质因数 20 void JudgmentDay();                            //判断某年某月某日是今年的第几天 21 void Pattern();                                //打印棱形图案 22  23 void main() 24 { 25     do{ 26     system("cls"); 27     HomePage(); 28     FunctionSelection(); 29     }while(No!=0); 30 } 31  32 void FunctionSelection()                    //功能选择 33 { 34     switch(No) 35     { 36     case 1:MultiplicationTable();break; 37     case 2:YanghuiTriangle();break; 38     case 3:IntLeapYear();break; 39     case 4:LettersPyramid_1();break; 40     case 5:LettersPyramid_2();break; 41     case 6:GCD_LCM();break; 42     case 7:Josephus();break; 43     case 8:JudgePrime();break; 44     case 9:NarcissisticNumber();break; 45     case 10:PrimeFactors();break; 46     case 11:JudgmentDay();break; 47     case 12:Pattern();break; 48     } 49  50 } 51  52 void HomePage()                                //首页 53 { 54     char* str_time=NULL; 55     time_t t; 56     system("cls"); 57     t=time(0);                        /*获取当前时间*/ 58     str_time=ctime(&t);                /*把日期和时间转换为字符串*/ 59  60     printf ("┏ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅┓\n"); 61     printf ("┇请选择您需要的功能:                                         ┇\n"); 62     printf ("┣ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅┫\n"); 63     printf ("┇  九九乘法表请按 …………………………………………1          ┇\n"); 64     printf ("┇  杨辉三角请按 ……………………………………………2          ┇\n"); 65     printf ("┇  判断闰年请按 ……………………………………………3          ┇\n"); 66     printf ("┇  字母金字塔(1)请按  ……………………………………4          ┇\n"); 67     printf ("┇  字母金字塔(2)请按  ……………………………………5          ┇\n"); 68     printf ("┇  最大公约数最小公倍数请按 ……………………………6          ┇\n"); 69     printf ("┇  约瑟夫环请按 ……………………………………………7          ┇\n"); 70     printf ("┇  判断素数请按 ……………………………………………8          ┇\n"); 71     printf ("┇  水仙花数请按 ……………………………………………9          ┇\n"); 72     printf ("┇  分解质因数请按 …………………………………………10         ┇\n"); 73     printf ("┇  判断某年某月某日是今年的第几天请按 ………………11         ┇\n"); 74     printf ("┇  打印棱形图案请按 ………………………………………12         ┇\n"); 75     printf ("┇                                                     退出_0 ┇\n"); 76     printf ("┗ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅┛\n"); 77     printf ("                               %s",str_time); 78     printf ("Please write down the number:"); 79     scanf ("%d",&No); 80 } 81  82  83  84 void MultiplicationTable()                    //九九乘法表 85 { 86     int i,j; 87     for(i=1;i<10;i++) 88     { 89         for(j=1;j<=i;j++) 90         { 91             printf("%d*%d=%-2d ",j,i,i*j); 92         } 93         printf("\n"); 94     } 95     system("pause"); 96 } 97  98 void YanghuiTriangle()                        //杨辉三角 99 {100     int n;101     printf("请先定义杨辉三角的深度(3~13最佳):");102     scanf("%d",&n);103     //缺少异常机制104     int a[30][30];105     int i,j,k;106     for(i=0;i<n;i++)107         for(j=0;j<=i;j++)108         {109             if(j==0||i==j)    a[i][j]=1;        //对两边的1进行赋值110         }111     for(i=2;i<n;i++)112         for(j=1;j<i;j++)113             a[i][j]=a[i-1][j-1]+a[i-1][j];    //数为两肩上的数之和114         115     for(i=0;i<n;i++)116     {117         for(k=0;k<n-i;k++)118             printf("  ");119         for(j=0;j<=i;j++)120             printf("%-3d ",a[i][j]);        //输出121         printf("\n");122     }123     system("pause");124 }125 126 127 128 void  IntLeapYear()                            //判断闰年129 {130     int year,leap;131     printf("\n请输入年份:");132     scanf("%d",&year);133     if((year%4==0 && year%100!=0)||(year%400==0))134         leap=1;135     else leap=0;136     if(leap)137         printf("%d is ",year);138     else139         printf("%d is not ",year);140     printf("a leap year.\n\n");141     system("pause");142 }143 144 void LettersPyramid_1()                        //字母金字塔(1)145 {146     int i,j;147     for(i=0;i<26;i++)148     {    149         for(j=0;j<26-i;j++)  printf(" ");150         for(j=i;j>=0;j--) printf("%c",A+j);151         for(j=1;j<i+1;j++) printf("%c",A+j);152         putchar(\n);153     }154     system("pause");155 }156 157 void LettersPyramid_2()                        //字母金字塔(2)158 {159     int i,j;160     for(i=0;i<26;i++)161     {162         for(j=0;j<25-i;j++) putchar( );163         for(j=0;j<i;j++) putchar(A+j);164         for(j=i;j>=0;j--) putchar(A+j);165         putchar(10);166     }167     system("pause");168 }169 170 void GCD_LCM()                            //最大公约数最小公倍数171 {172     int n,m,nm,t;173     printf("请输入两个数:");174     scanf("%d%d",&n,&m);175     nm=n*m;176     if(m>n)177     {178         t=m;179         m=n;180         n=t;181     }182     while(n%m!=0)183     {184         t=n%m;185         n=m;186         m=t;187     }188     printf("最大公约数:%d,最小公倍数:%d\n",m,nm/m);189     system("pause");190 }191 192 193 194 195 void Josephus()                                    //约瑟夫环196 {197     int m,n,i,j=0,a[100];198     int count1=0,count2=0;199     printf("请输入人数,和退出序数:");200     scanf("%d%d",&n,&m);201     for(i=0;i<n;i++)  a[i]=i+1;202     i=0;203     while(count2<n)204     {   205         206         while(a[i]!=0)207         {208             count1++;209             if(count1==m)210             {211                 j++;212                 printf("第%d个退出序数:%d\n",j,a[i]);213                 a[i]=0;214                 215                 count1=0;216                 count2++;217             }218             i++;219             i=i%n;    220         }221             i++;222             i=i%n;    223     }224     system("pause");225 }226 227 228 229 void JudgePrime()                        //判断素数230 {231     int n,j;232     printf("请输入一个数:");233     scanf("%d",&n);234     for(j=2;j<=sqrt(n);j++)235     {236         if(n%j==0) break;237     }238     if(j>sqrt(n)) printf("%d是素数.\n",n);239     else printf("%d不是素数.\n",n);240     system("pause");241 }242 243 244 void NarcissisticNumber()                //水仙花数245 {246     int i,bai,shi,ge;247     printf("水仙花数:\n");248     for(i=100;i<=999;i++)249     {250         bai=i/100;251         shi=i/10-bai*10;252         ge=i%10;253         if(i==bai*bai*bai+shi*shi*shi+ge*ge*ge)254             printf("%d=%d*%d*%d+%d*%d*%d+%d*%d*%d\n\n",i,bai,bai,bai,shi,shi,shi,ge,ge,ge);255     }256     system("pause");257 }258 259 260 261 void PrimeFactors()                        //分解质因数262 {263     int k,n;264     printf("(分解质因数)请输入一个数:");265     scanf("%d",&n);266     printf("%d=",n);267     for(k=2;k<=n;k++)268     {269         while(n%k==0)270         {271             printf("%d",k);272             if(n!=k) printf("*");273             n=n/k;274         }275         276     }277     printf("\n");278     system("pause");279 }280 281 282 void JudgmentDay()                            //判断某年某月某日是今年的第几天283 {284     int year,month,day,sum=0;285     printf("(判断某年某月某日是今年的第几天)\n请输入年 月 日:");286     scanf("%d%d%d",&year,&month,&day);287     switch(month)288     {289         case 1:sum=0;break;290         case 2:sum=31;break;291         case 3:sum=59;break;292         case 4:sum=90;break;293         case 5:sum=120;break;294         case 6:sum=151;break;295         case 7:sum=181;break;296         case 8:sum=212;break;297         case 9:sum=243;break;298         case 10:sum=273;break;299         case 11:sum=304;break;300         case 12:sum=335;break;301     }302     sum+=day;303     if(year%4==0&&year%100!=0||year%400==0) sum++;304     printf("\n今天是今年的第%d天.\n\n",sum);305     system("pause");306 }307 308 309 void Pattern()                        //打印棱形图案310 {311     int i,j,k,l;312     char a[7][7]={ };313     for(i=0;i<7;i++)314     {315         j=3;316         k=j-i;317         l=j+i;318         if(i>3)319         {320             k=i-3;321             l=6-k;322         }323         for(j=k;j<=l;j++)324         {325             a[i][j]=*;326         }327     }328     for(i=0;i<7;i++)329     {330         for(j=0;j<7;j++)331         {332             printf("%c",a[i][j]);333         }334         printf("\n");335     }336     system("pause");337 }

 

C函数调用