Here is how I might write what you have now:
Code:
#include <stdio.h>
#include <stdlib.h>
int And(int x, int y);
int Not(int x);
int Or(int x, int y);
int multiplexer(int x, int y, int z);
int main(void)
{
int a;
int b;
int c;
printf("\nEnter Value for A: ");
scanf("%i", &a);
printf("\nEnter Value for B: ");
scanf("%i", &b);
printf("\nEnter Value for C: ");
scanf("%i", &c);
printf("\n\nValue from Multiplexer = %d", multiplexer(a, b, c));
system("PAUSE");
return 0;
}
int Not(int x)
{
return !x;
}
int And(int x, int y)
{
return x && y;
}
int Or(int x, int x)
{
return x || y;
}
Observe my indentation and how I do not have so many unnecessary blank lines.
I have taken the liberty of renaming your functions' parameters. You need to see clearly that naming a parameter And1 does not call the And1 function, and thus having And1 and And2 is redundant.
I have also taken the liberty of declaring a multiplexer function for you and calling it. How to implement it is up to you.