Differentiate 不错 and 没错 in these situations
You already got the idea. To answer the situational questions:
(a) praise somebody's work?
Use 不错. If you use 没错, it means the content of the work is right.

他文章写得不错。He writes good articles.
他文章写的没错。What is written in his article is right.

(b) indicate nothing wrong with the food/article/etc?
Neither. You can use 不错 to praise the taste or the quality of the food. 没错 doesn't make sense because 'the food' is unable to make mistakes. It can be 'mistaken' in a sense of improperly cooked, gone bad or poisoned. In that case you want to say the food 有问题 (has problems) or 没问题 (no problem).

这家饭馆的食物有问题。Something's wrong with the food from this restaurant.
这家饭馆的食物没问题。There's nothing wrong with the food from this restaurant.
这家饭馆的食物不错。This restaurant makes good food.
这家饭馆的食物没错。(Doesn't make sense) The food from this restaurant didn't act wrong.

(c) approval or agreement with somebody's statement/idea?
Both can be used.
没错 expresses concurrence/agreement (not praise) to ideas and yes/no factual questions.

(Idea) “我们应该先看说明书。”“没错。” 'We should read user's manual first.' 'Right.'
(Fact) “电影是不是9点开始？”“没错。” 'Is the movie starting at 9?' 'Yes.'

没错 is seldom used for deeds. It's only used in very specific circumstances as an indifferent or perfunctory chime. Again this usage is uncommon and may sound strange depending on the situation.

(Deed) “我把作业都写完了。”“没错。” 'I have finished my homework.' '(Indifferently) I know.'

不错 can be used to praise deeds as well as ideas.

“我把作业都写完了。”“不错！” 'I have finished my homework.' 'Great!'

不错 can also be used to express concurrence as an inherited usage from ancient Chinese. There's a subtle defensive and provocative tone in it though, as if the question or statement before this response is unexpected or offensive.

“你一口气吃了十个冰淇淋？”“没错。” 'You ate ten ice creams at once?' 'Yes.'
“你一口气吃了十个冰淇淋？”“不错。” 'You ate ten ice creams at once?' 'Yes. (You have a problem with that?)'