From 8557e29d33b365816114996d04531468e13e78b1 Mon Sep 17 00:00:00 2001 From: zlg Date: Wed, 27 Feb 2013 05:54:58 -0600 Subject: Solve Exercise 2-02: No logical operators The text doesn't specify which technique to use. The section outlined operator precedence, but I couldn't think of a way to check for truth in the three main expressions without logical operators. So I turned to a recursive function. It works, but I'm not sure if it's what K&R were after. --- ch2/2-02_no-logical-operators.c | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 ch2/2-02_no-logical-operators.c diff --git a/ch2/2-02_no-logical-operators.c b/ch2/2-02_no-logical-operators.c new file mode 100644 index 0000000..6fea5d6 --- /dev/null +++ b/ch2/2-02_no-logical-operators.c @@ -0,0 +1,44 @@ +#include + +/* The C Programming Language, 2nd Edition + * + * Exercise 2-2: Write a loop equivalent to the 'for' loop above without + * using && or ||. + * + * (The for loop is: + * + * for (i=0; i < lim - 1 && (c = getchar()) != '\n' && c != EOF) + * i++; + * + * Answer: A recursive function should do the job. I think... + * + */ + +#define LIMIT 17 + +char test[LIMIT] = ""; +int i = 0; +int c; + +void save_string(char s[]) { + if (i < LIMIT - 1) { + c = getchar(); + if (c != '\n') { + if (c != EOF) { + s[i] = c; + i++; + } else { + return; + } + } else { + return; + } + save_string(s); + } +} + +int main() { + save_string(test); + printf("%s\n", test); + return 0; +} -- cgit v1.2.3-70-g09d2 on>
AgeCommit message (Collapse)AuthorFilesLines
2020-05-25vimrc: Switch pico8 colors, vim syntaxingzlg1-1/+2
todo.txt is interesting; if it ends up not for me, I'll make my own vim syntax instead. No big deal.
2020-05-02Reintegrate personal library as autoload scriptzlg2-16/+28
Functions that I've built up over time were squirreled away in a separate file for a while, but they were subtly broken and some didn't work. All functions in the library should now work as expected, and are easy to integrate into other installations of Vim.
2020-05-02colors/zlg.vim: Remove Trailing groupzlg1-3/+0
It wasn't applying correctly on files anyway.
2018-11-15add SetKeyMap function, export funcs to own filezlg2-194/+278
With this commit, I can toggle between Dvorak and QWERTY layouts with <Leader>q, making it much easier to edit text over the network.
2018-11-12Clean up function commentszlg1-7/+11
2018-11-12Add BufDiff()zlg1-0/+47