一.代码示例
#include <stdio.h>
#include <stdlib.h>
//初始化界面
void tips()
{
printf("...........................\n");
printf(".....请输入一种算法+-*/....\n");
printf("............设计者:李健...\n");
printf("...........................\n");
printf("...........................\n");
printf("...........................\n");
}
//基本算法调用模块
int add(int x,int y)
{
int z;
z=x+y;
return z;
}
int min(int x,int y)
{
int z;
z=x-y;
return z;
}
int mul(int x,int y)
{
int z;
z=x*y;
return z;
}
float chufa(int x,int y)
{
float z;
z=(float)x/y;//不同类型数据做运算时,比如两个整数相处,必须将除数或者除数墙绘转化为小数,否则小数点后面的数据容易被忽略
return z;
}
//封装选择算法模块
void calc(char suanfa)
{
switch(suanfa)
{
case '+':
printf("你选择了加法\n");
break;
case '-':
printf("你选择了减法\n");
break;
case '*':
printf("你选择了乘法\n");
break;
case '/':
printf("你选择了除法\n");
break;
default:
printf("你不知道选择了什么算法,难道是胡扯引起的吗?\n");
break;
}
printf("请输入第一个数据:\n");
scanf("%d",&data1);
printf("请输入第二个数据:\n");
scanf("%d",&data2);
switch(suanfa)
{
case '+':
printf("两数向加,结果:\n")add(data1,data2));
break;
case '-':
min(data1,data2);
printf("两数向减,结果:\n")min(data1,data2));
break;
case '*':
mul(data1,data2);
printf("两数向乘,结果:\n")mul(data1,data2));
break;
case '/':
chufa(data1,data2);
printf("两数向除,结果:\n")chufa(data1,data2));
break;
default:
printf("你不知道选择了什么算法,难道是胡扯引起的吗?\n");
break;
}
}
int main()
{
int data1;
int data2;
int ret;
float retchufa;
char suanfa;
int mark=0;
while(1){
tips();
//在第2以至于n次次输入时,过滤掉回车的小技巧
if(mark !=0)
getchar();
mark=1;
scanf("%c",&suanfa);//先输入了+,后输入了回车符
getchar();//回车符也是一种字符,getchar函数用来获取一个字符,在这里的作用是把回车吸收掉
calc(sunfa);
/*
switch(suanfa)
{
case '+':
printf("你选择了加法\n");
printf("请输入第一个数据:\n");
scanf("%d",&data1);
printf("请输入第二个数据:\n");
scanf("%d",&data2);
printf("结果:%d+%d=%d\n",data1,data2,data1+data2);
break;
case '-':
printf("你选择了减法\n");
printf("请输入第一个数据:\n");
scanf("%d",&data1);
printf("请输入第二个数据:\n");
scanf("%d",&data2);
printf("结果:%d-%d=%d\n",data1,data2,data1-data2);
break;
case '*':
printf("你选择了乘法\n");
printf("请输入第一个数据:\n");
scanf("%d",&data1);
printf("请输入第二个数据:\n");
scanf("%d",&data2);
printf("结果:%d*%d=%d\n",data1,data2,data1*data2);
break;
case '/':
printf("你选择了除法\n");
printf("请输入第一个数据:\n");
scanf("%d",&data1);
printf("请输入第二个数据:\n");
scanf("%d",&data2);
printf("结果:%d/%d=%f\n",data1,data2,(float)data1/data2);
break;
default:
printf("你不知道选择了什么算法,难道是胡扯引起的吗?\n");
break;
}
*/
/*
printf("请输入第一个数据:\n");
scanf("%d",&data1);
printf("请输入第二个数据:\n");
scanf("%d",&data2);
ret=add(data1,data2);
printf("结果:%d+%d=%d\n",data1,data2,ret);
ret=min(data1,data2);
printf("结果:%d-%d=%d\n",data1,data2,ret);
ret=mul(data1,data2);
printf("结果:%d*%d=%d\n",data1,data2,ret);
retchufa=chufa(data1,data2);
printf("结果:%d/%d=%d\n",data1,data2,ret);
*/
}
return 0;
}
二.学习总结
1. getchar();//回车符也是一种字符,getchar函数用来获取一个字符,在这里的作用是把回车吸收掉。
2.如何在多个循环中吸收回车?
if(mark !=0)
getchar();
mark=1;
3.学习封装算法调用