编写简易计算器实现加减乘除功能的选择,能重复使用,设计退出机制。
#include <stdio.h>
int main(void){
float n1; // 保存第一个数字
float n2; // 保存第二个数字
char op; // 保存操作符号
char continueFlag; // 保存是否继续的标志变量
while (1)
{
printf("请输入操作:(格式:a+b; 例如 3+4 )");
scanf("%f %c %f", &n1, &op, &n2);
switch (op){
case '+': printf("运算结果为:%.2f\n", n1+n2); break;
case '-': printf("运算结果为:%.2f\n", n1-n2); break;
case '*': printf("运算结果为:%.2f\n", n1*n2); break;
case '/': printf("运算结果为:%.2f\n", n1/n2); break;
default : printf("无效的操作符号!\n"); break; // 如果输入操作符号不合法则报错提示
}
printf("是否继续?(y or n):");
scanf(" %c", &continueFlag);
if (continueFlag == 'n')
{
break;
}
}
return 0;
}
/*
简单计算器
name:zsh
*/
#include <stdio.h> //简单计算器
void menu() //运算符显示界面
{
printf("--------------------------------------------\n");
printf("请输入你的选择\n");
printf("1. + \n");
printf("2. - \n");
printf("3. * \n");
printf("4. / \n");
printf("--------------------------------------------\n");
}
int main()
{
int i = 0;
int j = 0;
int num = 0; //存放计算结果
int select = 0; //存放选择的运算符
do
{
menu(); //打印运算符显示界面
scanf("%d", &select); //输入运算符编号
printf("请输入计算值");
scanf("%d%d", &i, &j); //输入运算数值
switch (select)
{
case 1:
printf("%d+%d=%d\n", i, j, num=i+j); //加法运算
break;
case 2:
printf("%d-%d=%d\n", i, j, num=i-j); //减法运算
break;
case 3:
printf("%d*%d=%d\n", i, j, num=i*j); //乘法运算
break;
case 4:
printf("%d/%d=%d\n", i, j, num=i/j); //除法运算
break;
default:
printf("输入有误请重新选择!");
break;
}
} while(select);
return 0;
}
(有待思考)#define _CRT_SECURE_NO_WARNINGS
#include
#include
#includeusing namespace std;
void index(char* s1, char* s2)
{
int len ,max = 0;
char temp[50];
while (*s1)
{
while (*s1 == ’ ’ && *s1 != ‘\0’) s1++;//过滤空格;
len = 0;
while (*s1 != ' ' && *s1 != '\0')
{
*(temp + len) = *s1;//不能用*temp=*s1,why?
len++;
s1++;
}
*(temp + len) = '\0';//注意这种方式。
if (len > max)
{
max = len;
strcpy(s2, temp);
}
if (*s1 == '\0') break;
}}
int main()
{
char s1[50],s2[50];cin.get(s1,50); index(s1, s2);
cout << “s2:” << s2;
}用队列的方法输出杨辉三角:#include
using namespace std;
const int maxsize = 100;
typedef struct {
int Q[maxsize];//存放数据
int front, rear;
}sequeue;
sequeue qu;
void setkong(sequeue& qq)
{
qq.front = 0;
qq.rear = 0;
}//置队空
void rudui(sequeue& qq, int x)
{
if (qq.front == (qq.rear + 1) % maxsize)
cout << “overflow\n”;
else
{
qq.Q[qq.rear] = x;
qq.rear = (qq.rear + 1) % maxsize;
}
}
void chudui(sequeue &qq, int& x)
{
if (qq.front == qq.rear)
{
cout << “underflow\n”;
}
else
{
x = qq.Q[qq.front];
qq.front = (qq.front + 1) % maxsize;
}
}
void getfront(sequeue qq, int &x)//读取队头元素
{
if (qq.front == qq.rear)
{
cout << “error!\n”;
}
else
{
x = qq.Q[qq.front];
}
}
int empty(sequeue qq)//判断队列是否为空
{
if (qq.front == qq.rear)
return 1;
else
return 0;
}
void yanghui(int n,sequeue qu)
{
int i, j,s,t;
setkong(qu);
rudui(qu, 1); rudui(qu, 1);
cout << endl;
cout.width(4); cout << 1;
cout.width(4); cout << 1<<endl;
for (i = 2; i <= n; i++)//生成并输出杨辉三角第i~n行的数据
{
rudui(qu, 1);
cout.width(4); cout << 1;
chudui(qu, s);
for (j = 2; j <= i; j++)//处理第i行中间的各数据
{
chudui(qu, t);
rudui(qu, s + t);
cout.width(4); cout << s + t;
s = t;
}
rudui(qu, 1);
cout.width(4); cout << 1<<endl;
}
cout << endl;
}
int main()
{
int m;
cin >> m;
yanghui(m, qu);
}