编写程序,打印输出9种基本逻辑运算符(与、或、非、条件、双条件、异或、与非、或非、条件否定)的运算表到字符文件logic.txt中。
编程目的:学会用程序语言提供的基本逻辑运算功能实现所有9种逻辑运算。
//Discrete Mathematics
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void yu();//有能力的同学用英语写函数名
void huo();
void fei();
void tiaojian();
void shuangtiaojian();
void yihuo();
void yufei();
void huofei();
void tiaojianfouding();
//FILE *freopen(const char *path, const char *mode, FILE *stream);
int main(){
freopen("D:\\logic.txt","w",stdout);//将控制台的内容写入D:中的logic.txt(这里因人而异)
yu();
huo();
fei();
tiaojian();
shuangtiaojian();
yihuo();
yufei();
huofei();
tiaojianfouding();
fclose(stdout);//关闭文件
return 0;
}
void yu(){
int i, j, t = 0;
printf("------------------\n");
printf("P\tQ\t与\n");
printf("------------------\n");
for (i = 0; i <= 1; i++)
for (j = 0; j <= 1; ++j)
{
t = i&j;
printf("%d\t%d\t%d\n", i, j, t);
}
printf("------------------\n");
printf("\n");
}
void huo(){
int i, j, t = 0;
printf("------------------\n");
printf("P\tQ\t或\n");
printf("------------------\n");
for (i = 0; i <= 1; i++)
for (j = 0; j <= 1; ++j)
{
t = i|j;
printf("%d\t%d\t%d\n", i, j, t);
}
printf("------------------\n");
printf("\n");
}
void fei(){
int i, t = 0;
printf("----------\n");
printf("a\t非\n");
printf("----------\n");
for (i = 0; i <= 1; i++)
{
t = ~i + 2;
printf("%d\t%d\n", i, t);
}
printf("----------\n");
printf("\n");
}
void tiaojian(){
int i, j, t = 0;
printf("--------------------\n");
printf("a\tb\t条件\n");
printf("--------------------\n");
for (i = 0; i <= 1; i++)
for (j = 0; j <= 1; ++j)
{
t = (~i + 2)|j;
printf("%d\t%d\t %d\n", i, j, t);
}
printf("--------------------\n");
printf("\n");
}
void shuangtiaojian(){
int i, j;
printf("----------------------\n");
printf("a\tb\t双条件\n");
printf("----------------------\n");
for (i = 0; i <= 1; i++)
for (j = 0; j <= 1; ++j)
{
if(i == j)
printf("%d\t%d\t %d\n", i, j, 1);
else
printf("%d\t%d\t %d\n", i, j, 0);
}
printf("----------------------\n");
printf("\n");
}
void yihuo(){
int i, j, t = 0;
printf("--------------------\n");
printf("a\tb\t异或\n");
printf("--------------------\n");
for (i = 0; i <= 1; i++)
for (j = 0; j <= 1; ++j)
{
t = i^j;
printf("%d\t%d\t %d\n", i, j, t);
}
printf("--------------------\n");
printf("\n");
}
void yufei(){
int i, j, t = 0;
printf("--------------------\n");
printf("a\tb\t与非\n");
printf("--------------------\n");
for (i = 0; i <= 1; i++)
for (j = 0; j <= 1; ++j)
{
t = ~(i&j) + 2;
printf("%d\t%d\t %d\n", i, j, t);
}
printf("--------------------\n");
printf("\n");
}
void huofei(){
int i, j, t = 0;
printf("--------------------\n");
printf("a\tb\t或非\n");
printf("--------------------\n");
for (i = 0; i <= 1; i++)
for (j = 0; j <= 1; ++j)
{
t = ~(i|j) + 2;
printf("%d\t%d\t %d\n", i, j, t);
}
printf("--------------------\n");
printf("\n");
}
void tiaojianfouding(){
int i, j, t = 0;
printf("------------------------\n");
printf("a\tb\t条件否定\n");
printf("------------------------\n");
for (i = 0; i <= 1; i++)
for (j = 0; j <= 1; ++j)
{
t = ~((~i + 2)|j) + 2;
printf("%d\t%d\t %d\n", i, j, t);
}
printf("------------------------\n");
printf("\n");
}