c语言编程输出主析取范式,c++编程:从键盘上任意输入一个主析取范式,输出与之等值的主合取范式...
满意答案
zxuu11
2013.09.15
采纳率:44% 等级:8
已帮助:2365人
//从键盘上任意输入一个主析取范式,输出与之等值的主合取范式。┐∧∨
# include
# include
# include
using namespace std ;
//跳出函数
bool jump(const char ch){
char c = cin.peek() ;
if (ch == ')' && c != '+' && c != '*')
return 1 ;
return 0 ;
}
//将字母转化为二进制
int change(char ch){
int k = ch-97 ;
return pow(2,k) ;
}
//将转化后的和取公式输出
void output(int k, int n , int left){
char ch = 96;
int i ;
cout << '(' ;
for (i=0 ; i
ch++ ;
switch (k%2){
case 1:
cout << ch << '*' ;
k/=2 ;
break ;
case 0 :
cout << '!' << ch << '*' ;
k/=2 ;
break ;
}
}
if (left == 0)
cout << '\b' << ')' ;
else
cout << '\b' << ')' << '+' ;
}
//公式输入 and 公式输出....
void funtion(){
cout << "输入变量数:" ;
int var_n=0 , k ;
cin >> var_n ;
if (var_n>26 || var_n<1){
cout << "enter error!" << endl ;
MessageBox(NULL, "输入错误!", "error", MB_OK);
exit (0) ;
}
k = pow(2, var_n) ;
int *p = new int[k] ;
for (int i=0; i
p[i] = 0 ;
char ch ;
int num = 1 , count = 0 ;
cout << "----------------------------------------------------" << endl ;
cout << "输入析取公式: " ;
while (1){
cin >> ch ;
if(jump(ch))
break ;
if (ch == '*'){
p[count] = 1 ;
num++ ;
count = 0 ;
cin >> ch ;
}
if (ch == '(' || ch == ')' || ch == '+')
cin >> ch ;
if (ch == '!')
cin >> ch >> ch;
if(jump(ch))
break ;
if (ch != '*' && ch != '!' && ch != '(' && ch != ')' && ch != '+'){
count += change(ch) ;
}
if (ch == '*'){
p[count] = 1 ;
num++ ;
count = 0 ;
cin >> ch ;
}
}
p[count] = 1 ;
cout << "变项数有: " << num << endl ;
cout << "----------------------------------------------------" << endl ;
cout << "和取公式:" ;
int left ;
left = k - num ;
for (i=0 ; i
if (p[i] == 0){
left-- ;
output(i, var_n, left) ;
}
cout << "\n变项数有:" << k - num << endl ;
cout << "\n----------------------------------------------------" << endl ;
}
main(){
funtion();
return 0 ;
}
00分享举报
c语言编程输出主析取范式,c++编程:从键盘上任意输入一个主析取范式,输出与之等值的主合取范式...相关推荐
- #标题 已知从键盘上任意输入一个3位整数,编译计算并输出它的逆序数
#include<stdio.h> int main() {int a=101,b =0;do{b=a+b;a++;}while(a<=100);printf("b=%d& ...
- 任意输入一个整数反转输出
任意输入一个整数反转输出 任意输入一个整数反转输出#include<stdio.h> #include<string.h> #include <math.h> #i ...
- 任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入1593 ,则输出为9531。
[题目描述] 任意输入一个自然数,输出该自然数的各位数字组成的最大数.例如,输入1593 ,则输出为9531. [输入] 仅一行.自然数 n(0<n≤1018). [输出] 仅一行.各位数字组成 ...
- 任意输入一个整数,输出这个数的加法表
任意输入一个整数,输出这个数的加法表 package com.java.exercise; import java.util.Scanner; /** * 打印如下加法表: * 0+5=5 * 1+4 ...
- 怎样用才c语言定义一个三位数,怎样编写一个c语言程序计算任意输入一个3位数的整数的各位数字之和。要求主函数包括输入输出和调用该函数。...
点击查看怎样编写一个c语言程序计算任意输入一个3位数的整数的各位数字之和.要求主函数包括输入输出和调用该函数.具体信息 答:#include void main(){ int a,sum=0; pri ...
- 编c语言程序 任意输入一个长方体的长,宽,高,计算体积.,C语言程序,由键盘任意输入一个长方体的长.宽.高,计算体积....
用C语言编写程序,输入一个正整数n(1 #include"stdio.h"intmain(){\x09inti,j,n;\x09inta[12];\x09intmin,mx;\x0 ...
- python从键盘上输入10个整数、输出奇数和_数据库 从键盘上输入10个整数型的数值,分别统计奇数和偶数的个数...
从键盘上输入10个整数,并求出这10个数中所有奇数的和与所有偶数之和要求:分别用while,do ...while #includelongmain(void){\x05longa[10]={0};\ ...
- 【C语言】从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号)。
C语言实战题目:从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号).例如,输入-123,则忽略负号,由123分离出其百位1.十位2.个位3,然后计算3*100+2*10+1 = ...
- ACMNO.23 C语言-素数判定 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime
题目描述 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息. 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime 样例输入 97 样例输出 prime 来源/ ...
最新文章
- 用了 10 年 Windows 后,我最终转向 Linux
- 【C++ STL】Map库使用方法
- beyond compare比较工具设置
- Spring Cloud(四) API网关Zuul
- 机器翻译学习1:pytorch官方教程与代码逐行详解
- c语言字符型数据怎么输入输出,C语言基础之数据类型与输入/输出
- pythonista安装tkinter_Python又把GUI界面攻下了,今天就告诉你怎么玩
- 16.TCP/IP 详解卷1 --- BOOTP:引导程序协议
- 电脑各类快捷键及运行命令大全
- C语言中按位取反操作符详解
- svn版本库浏览器_版本库浏览器
- java囧囧西游之大闹天宫下载_最新囧囧西游之大闹天宫榜单下载_九游
- VR全景视频、图片播放器
- Windows基础 主机加固
- 工作室多拨宽带如何优化?
- 牛客小bai月赛39 F 孤独(dp)
- Python:opencv库实现调用摄像头拍照并保存到本地
- java ps old gen_PSYoungGen /PSOldGen/PSPermGen区别
- 新媒体数据分析:新媒体运营主要做什么?
- 小程序源码:头像挂件工坊DIY工具