满意答案

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++编程:从键盘上任意输入一个主析取范式,输出与之等值的主合取范式...相关推荐

  1. #标题 已知从键盘上任意输入一个3位整数,编译计算并输出它的逆序数

    #include<stdio.h> int main() {int a=101,b =0;do{b=a+b;a++;}while(a<=100);printf("b=%d& ...

  2. 任意输入一个整数反转输出

    任意输入一个整数反转输出 任意输入一个整数反转输出#include<stdio.h> #include<string.h> #include <math.h> #i ...

  3. 任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入1593 ,则输出为9531。

    [题目描述] 任意输入一个自然数,输出该自然数的各位数字组成的最大数.例如,输入1593 ,则输出为9531. [输入] 仅一行.自然数 n(0<n≤1018). [输出] 仅一行.各位数字组成 ...

  4. 任意输入一个整数,输出这个数的加法表

    任意输入一个整数,输出这个数的加法表 package com.java.exercise; import java.util.Scanner; /** * 打印如下加法表: * 0+5=5 * 1+4 ...

  5. 怎样用才c语言定义一个三位数,怎样编写一个c语言程序计算任意输入一个3位数的整数的各位数字之和。要求主函数包括输入输出和调用该函数。...

    点击查看怎样编写一个c语言程序计算任意输入一个3位数的整数的各位数字之和.要求主函数包括输入输出和调用该函数.具体信息 答:#include void main(){ int a,sum=0; pri ...

  6. 编c语言程序 任意输入一个长方体的长,宽,高,计算体积.,C语言程序,由键盘任意输入一个长方体的长.宽.高,计算体积....

    用C语言编写程序,输入一个正整数n(1 #include"stdio.h"intmain(){\x09inti,j,n;\x09inta[12];\x09intmin,mx;\x0 ...

  7. python从键盘上输入10个整数、输出奇数和_数据库 从键盘上输入10个整数型的数值,分别统计奇数和偶数的个数...

    从键盘上输入10个整数,并求出这10个数中所有奇数的和与所有偶数之和要求:分别用while,do ...while #includelongmain(void){\x05longa[10]={0};\ ...

  8. 【C语言】从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号)。

    C语言实战题目:从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号).例如,输入-123,则忽略负号,由123分离出其百位1.十位2.个位3,然后计算3*100+2*10+1 = ...

  9. ACMNO.23 C语言-素数判定 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime

    题目描述 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息. 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime 样例输入 97 样例输出 prime 来源/ ...

最新文章

  1. 用了 10 年 Windows 后,我最终转向 Linux
  2. 【C++ STL】Map库使用方法
  3. beyond compare比较工具设置
  4. Spring Cloud(四) API网关Zuul
  5. 机器翻译学习1:pytorch官方教程与代码逐行详解
  6. c语言字符型数据怎么输入输出,C语言基础之数据类型与输入/输出
  7. pythonista安装tkinter_Python又把GUI界面攻下了,今天就告诉你怎么玩
  8. 16.TCP/IP 详解卷1 --- BOOTP:引导程序协议
  9. 电脑各类快捷键及运行命令大全
  10. C语言中按位取反操作符详解
  11. svn版本库浏览器_版本库浏览器
  12. java囧囧西游之大闹天宫下载_最新囧囧西游之大闹天宫榜单下载_九游
  13. VR全景视频、图片播放器
  14. Windows基础 主机加固
  15. 工作室多拨宽带如何优化?
  16. 牛客小bai月赛39 F 孤独(dp)
  17. Python:opencv库实现调用摄像头拍照并保存到本地
  18. java ps old gen_PSYoungGen /PSOldGen/PSPermGen区别
  19. 新媒体数据分析:新媒体运营主要做什么?
  20. 小程序源码:头像挂件工坊DIY工具

热门文章

  1. matlab光线追击,MATLAB在追迹光线计算中的应用
  2. 部署Guacamole远程控制桌面
  3. 带你了解一下什么是SaaS平台
  4. 大数据高级开发工程师——Spark学习笔记(4)
  5. C++算法 | 比较大小
  6. 面试角度分析:微信里面让你删掉一个功能,你选哪个?
  7. MySQL中关于字符编码的配置
  8. 让吹牛都能全世界最棒
  9. OpenAI 强化学习 SpiningUP 中文文档 中文教程
  10. 搜狗搜索立知问答合作说明