Eg:(())()) - Invalid expression, (()()) - Valid expression?
/* * C Program to Check if Expression is correctly Parenthesized */ #include <stdio.h> #include <stdlib.h> #include <string.h> int top = -1; char stack[100]; // function prototypes void push(char); void pop(); void find_top(); void main() { int i; char a[100]; printf("enter expression\n"); scanf("%s", &a); for (i = 0; a[i] != '\0';i++) { if (a[i] == '(') { push(a[i]); } else if (a[i] == ')') { pop(); } } find_top(); } // to push elements in stack void push(char a) { stack[top] = a; top++; } // to pop elements from stack void pop() { if (top == -1) { printf("expression is invalid\n"); exit(0); } else { top--; } } // to find top element of stack void find_top() { if (top == -1) printf("\nexpression is valid\n"); else printf("\nexpression is invalid\n"); }
It was asked today in interview but could not crack it, any help.
#include<stdio.h> int &fun() { static int x; return x; } int main() { fun() = 10; printf(" %d ", fun()); return 0; }
It is fine with c++ compiler while giving error with c compiler.