函数调用实际应用

#include"stdio.h"
#include"time.h"
#include"conio.h"
#include"stdlib.h"
#include"windows.h"
#define N 10
	void add();
	void hui();
	void subt();
	void mult();
	void divid();
	void shui();
	void question(int,int,char);
	void ling();
	void zhi();
	void yang();
	void tong();
	void jiu();
	void shu();
	void jj();
	void xz(); 
	void zj();
	void zsj();
	void dsj();
	void gotoxy(int,int);
//选项显示位置 
void gotoxy(int m, int n)
{
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X = m;
    pos.Y = n;
    SetConsoleCursorPosition(handle, pos);
}
	
main()
{

	int x=30,y=6;
	char choice;
	srand((unsigned) time(NULL));//产生随机值 
	while(1)
	{
		system("cls") ;
		gotoxy(x,y+1);puts("1.加减乘除");
		gotoxy(x,y+2);puts("2.形状");
		gotoxy(x,y+3);puts("3.杨辉三角");
		gotoxy(x,y+4);puts("4.九九乘法表");
		gotoxy(x,y+5);puts("5.性质数");
		gotoxy(x,y+6);puts("6.退 出");
		gotoxy(x,y+7);puts("请选择(1,2,3,4,5,6):");
		choice=getchar();
		switch(choice)
		{
			case '1':jj();break;
			case '2':xz();break;
			case '3':yang();break;
			case '4':jiu();break; 
			case '5':shu();break;
			case '6':exit(0);break;
			default:printf("输入有误!请重新输入......\n"); 
		}
	}
}
//形状调用 
void xz()
{
	int x=30,y=6;
	char choice;
	while(1)
	{
		system("cls") ;
		gotoxy(x,y);printf("1.正三角");
		gotoxy(x,y+1);puts("2.倒三角");
		gotoxy(x,y+2);puts("3.菱形");
		gotoxy(x,y+3);puts("4.直角三角形");
		gotoxy(x,y+4);puts("5.返回主菜单");
		gotoxy(x,y+5);puts("请选择(1,2,3,4,5):");
		choice=getchar();
		switch(choice)
		{
			case '1':zsj();break;
			case '2':dsj();break;
			case '3':ling();break;
			case '4':zj();break;
			case '5':main();break;
			default:printf("输入有误!请重新输入......\n");
		}
	}
}
//数的计算 
void jj()
{
	int x=30,y=6;
	char choice;
	while(1)
	{
		system("cls") ;
		gotoxy(x,y);printf("1.加法练习");
		gotoxy(x,y+1);puts("2.减法练习");
		gotoxy(x,y+2);puts("3.乘法练习");
		gotoxy(x,y+3);puts("4.除法练习");
		gotoxy(x,y+4);puts("5.返回主菜单");
		gotoxy(x,y+5);puts("请选择(1,2,3,4,5):");
		choice=getchar();
		switch(choice)
		{
			case '1':add();break;
			case '2':subt();break;
			case '3':mult();break;
			case '4':divid();break;
			case '5':main();break;
			default:printf("输入有误!请重新输入......\n"); 
		}
	}
}
//性质数 
void shu()
{
	    char c;
		int x=30,y=6;
		while(1)
		{system("cls") ;
		gotoxy(x,y);printf("1.质数");
		gotoxy(x,y+1);puts("2.水仙花数");
		gotoxy(x,y+2);puts("3.回文数");
		gotoxy(x,y+3);puts("4.同构数");
		gotoxy(x,y+4);puts("5.返回主菜单");
		gotoxy(x,y+5);puts("请选择(1,2,3,4,5):");
		c=getchar();
		switch(c)
		{
			case '1':zhi();break;
			case '2':shui();break;
			case '3':hui();break;
			case '4':tong();break;
			case '5':main();break;
			default:printf("输入有误!请重新输入......\n");
		}
		
		}
}
//正三角 
void zsj()
{system("cls") ;
	printf("请输入直角三角形的层数:\n");
	int m,i,j,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(m=n-i;m>0;m--)
		printf(" ");
		for(j=1;j<=i;j++)
		printf("* ");
		printf("\n");
	}
	getch();
}
//倒三角 
void dsj()
{	system("cls");
	printf("请输入直角三角形的层数:\n");
	int m,i,j,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(j=n;j>=i;j--)
		printf("* ");
		printf("\n");
		for(m=i;m>0;m--)
		printf(" ");
	}
	getch();
}
//直角三角形 
void zj()
{system("cls");
printf("请输入直角三角形的层数:\n");
	int m,i,j,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=i;j++)
		printf("*");
		printf("\n");
	}
	getch();
}
//质数 
void zhi()
{
	system("cls");
	int x,i,j;
	x=0;
	for(i=2;i<1000;i++)
	{
		for(j=2;j<i;j++)
		if(i%j==0)
		break;
		if(j>=i)
		{printf("%d\t",i);
		 x++;
		 if(x%7==0)
		 printf("\n");
		}
	}
	getch();
}
//加 
void add()
{
	int i,num1,num2,answer;
system("cls") ;
	for(i=1;i<=5;i++)
	{
		num1=rand()%99+1;
		num2=rand()%99+1;
		question(num1,num2,'+');
		scanf("%d",&answer);
		if(answer==num1+num2)
		puts("正确!");
		else
			printf("错了,正确答案是:%d\n",num1+num2);
	}
	printf("\n加法练习做完了,按任意键返回菜单......");
	getch();
}
//减 
void subt()
{
	int i,num1,num2,answer;
system("cls") ;
	for(i=1;i<=5;i++)
	{
		num1=rand()%99+1;
		num2=rand()%99+1;
		question(num1,num2,'-');
		scanf("%d",&answer);
		if(answer==num1-num2)
		puts("正确!");
		else
			printf("错了,正确答案是:%d\n",num1-num2);
	}
	printf("\n减法练习做完了,按任意键返回菜单......");
	getch();
} 
//乘 
void mult()
{
	int i,num1,num2,answer;
	system("cls") ;
	for(i=1;i<=5;i++)
	{
		num1=rand()%99+1;
		num2=rand()%10;
		question(num1,num2,'*');
		scanf("%d",&answer);
		if(answer==num1*num2)
		puts("正确!");
		else
			printf("错了,正确答案是:%d\n",num1*num2);
	}
	printf("\n乘法练习做完了,按任意键返回菜单......");
	getch();
}
//除 
void divid()
{
	int i,num1,num2,answer;
	system("cls") ;
	for(i=1;i<=5;i++)
	{
		do
		{
		num1=rand()%99+1;
		num2=rand()%9+1;
		}while(num1%num2!=0);
		question(num1,num2,'/');
		scanf("%d",&answer);
		if(answer==num1/num2)
		puts("正确!");
		else
		printf("错了,正确答案是:%d\n",num1/num2);
	}
	printf("\n除法练习做完了,按任意键返回菜单......");
	getch();
}

void question(int n1,int n2,char opt)
{
	printf("%d%c%d=",n1,opt,n2);
} 

//菱形 
void ling()
{system("cls");
	int m,i,j,n;
	printf("请输入菱形的边长:\n");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(m=n-i;m>0;m--)
		printf(" ");
		for(j=1;j<=i;j++)
		printf("* ");
		printf("\n");
	}
	for(i=n;i>=1;i--)
	{
	for(m=n-i;m>0;m--)
	printf(" ");
	for(j=1;j<=i-1;j++)
	printf(" *");
	printf("\n");	
	}
	
	getch();
}
//杨辉三角 
void yang()
{
	system("cls");
	printf("杨辉三角\n");
	int x,c,ls,rs;
	int t[N]={1};
	for(x=0;x<N;x++)
	{
		ls=0;
		for(c=N-x;c>0;c--)
		printf("  ");
		for(c=0;c<=x;c++)
		{
			rs=t[c];
			t[c]=ls+rs;
			ls=rs;
			printf("%4d",t[c]);
		}
		printf("\n");
	} 
	
		getch();
}
//同构数 
void tong()
{
	system("cls");
	printf("0~1000以内的同构数:\n");
	int k,x,n;
	for(x=0;x<=1000;x++)
	{k=1;
	n=x;
	while(n)
	{
		k*=10;
		n/=10;
	}
	if(x==x*x%k)
	printf("%d\t",x);
	}
	getch();
} 
//九九乘法表 
void jiu()
{
	system("cls");
	int i,j;
	for(i=1;i<=9;i++)
	{
		for(j=1;j<=i;j++)
		printf("%d*%d=%d\t",j,i,j*i);
		printf("\n");
	}
	getch();
}
//回文数 
void hui()
{system("cls");
	int i,j,k,x;
	for(i=0;i<=1000;i++)
	{k=0;j=i;
	while(j)
	{
		k=k*10+j%10;
		j/=10;
	}
	if(k==i)
	printf("%d\t",i);
	}
getch();	
}
//水仙花数 
void shui()
{system("cls");
	int i,x,g,s,b;
	for(i=100;i<1000;i++)
	{
		g=i/100;
		s=i/10%10;
		b=i%10;
		if(i==g*g*g+s*s*s+b*b*b)
		printf("%d\t",i);	
	}
	getch();
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

译藏为之cáng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值