もし力技で解くなら、力技部分はこんなプログラムになるでしょうね。
(雰囲気を伝えるものであって、こうしろって意味じゃないです)
if(a+b+c+d == 10) printf("%d+%d+%d+%d\n", a, b, c, d);
else if(a+b+c-d == 10) printf("%d+%d+%d-%d\n", a, b, c, d);
else if(a+b+c*d == 10) printf("%d+%d+%d*%d\n", a, b, c, d);
else if(a+b+c/d == 10) printf("%d+%d+%d/%d\n", a, b, c, d);
else if(a+b-c+d == 10) printf("%d+%d-%d+%d\n", a, b, c, d);
else if(a+b-c-d == 10) printf("%d+%d-%d-%d\n", a, b, c, d);
else if(a+b-c*d == 10) printf("%d+%d-%d*%d\n", a, b, c, d);
else if(a+b-c/d == 10) printf("%d+%d-%d/%d\n", a, b, c, d);
else if(a+b*c+d == 10) printf("%d+%d*%d+%d\n", a, b, c, d);
else if(a+b*c-d == 10) printf("%d+%d*%d-%d\n", a, b, c, d);
else if(a+b*c*d == 10) printf("%d+%d*%d*%d\n", a, b, c, d);
else if(a+b*c/d == 10) printf("%d+%d*%d/%d\n", a, b, c, d);
else if(a+b/c+d == 10) printf("%d+%d/%d+%d\n", a, b, c, d);
else if(a+b/c-d == 10) printf("%d+%d/%d-%d\n", a, b, c, d);
else if(a+b/c*d == 10) printf("%d+%d/%d*%d\n", a, b, c, d);
else if(a+b/c/d == 10) printf("%d+%d/%d/%d\n", a, b, c, d);
else if(a-b+c+d == 10) printf("%d-%d+%d+%d\n", a, b, c, d);
else if(a-b+c-d == 10) printf("%d-%d+%d-%d\n", a, b, c, d);
else if(a-b+c*d == 10) printf("%d-%d+%d*%d\n", a, b, c, d);
else if(a-b+c/d == 10) printf("%d-%d+%d/%d\n", a, b, c, d);
else if(a-b-c+d == 10) printf("%d-%d-%d+%d\n", a, b, c, d);
else if(a-b-c-d == 10) printf("%d-%d-%d-%d\n", a, b, c, d);
else if(a-b-c*d == 10) printf("%d-%d-%d*%d\n", a, b, c, d);
else if(a-b-c/d == 10) printf("%d-%d-%d/%d\n", a, b, c, d);
else if(a-b*c+d == 10) printf("%d-%d*%d+%d\n", a, b, c, d);
else if(a-b*c-d == 10) printf("%d-%d*%d-%d\n", a, b, c, d);
else if(a-b*c*d == 10) printf("%d-%d*%d*%d\n", a, b, c, d);
else if(a-b*c/d == 10) printf("%d-%d*%d/%d\n", a, b, c, d);
else if(a-b/c+d == 10) printf("%d-%d/%d+%d\n", a, b, c, d);
else if(a-b/c-d == 10) printf("%d-%d/%d-%d\n", a, b, c, d);
else if(a-b/c*d == 10) printf("%d-%d/%d*%d\n", a, b, c, d);
else if(a-b/c/d == 10) printf("%d-%d/%d/%d\n", a, b, c, d);
else if(a*b+c+d == 10) printf("%d*%d+%d+%d\n", a, b, c, d);
else if(a*b+c-d == 10) printf("%d*%d+%d-%d\n", a, b, c, d);
else if(a*b+c*d == 10) printf("%d*%d+%d*%d\n", a, b, c, d);
else if(a*b+c/d == 10) printf("%d*%d+%d/%d\n", a, b, c, d);
else if(a*b-c+d == 10) printf("%d*%d-%d+%d\n", a, b, c, d);
else if(a*b-c-d == 10) printf("%d*%d-%d-%d\n", a, b, c, d);
else if(a*b-c*d == 10) printf("%d*%d-%d*%d\n", a, b, c, d);
else if(a*b-c/d == 10) printf("%d*%d-%d/%d\n", a, b, c, d);
else if(a*b*c+d == 10) printf("%d*%d*%d+%d\n", a, b, c, d);
else if(a*b*c-d == 10) printf("%d*%d*%d-%d\n", a, b, c, d);
else if(a*b*c*d == 10) printf("%d*%d*%d*%d\n", a, b, c, d);
else if(a*b*c/d == 10) printf("%d*%d*%d/%d\n", a, b, c, d);
else if(a*b/c+d == 10) printf("%d*%d/%d+%d\n", a, b, c, d);
else if(a*b/c-d == 10) printf("%d*%d/%d-%d\n", a, b, c, d);
else if(a*b/c*d == 10) printf("%d*%d/%d*%d\n", a, b, c, d);
else if(a*b/c/d == 10) printf("%d*%d/%d/%d\n", a, b, c, d);
else if(a/b+c+d == 10) printf("%d/%d+%d+%d\n", a, b, c, d);
else if(a/b+c-d == 10) printf("%d/%d+%d-%d\n", a, b, c, d);
else if(a/b+c*d == 10) printf("%d/%d+%d*%d\n", a, b, c, d);
else if(a/b+c/d == 10) printf("%d/%d+%d/%d\n", a, b, c, d);
else if(a/b-c+d == 10) printf("%d/%d-%d+%d\n", a, b, c, d);
else if(a/b-c-d == 10) printf("%d/%d-%d-%d\n", a, b, c, d);
else if(a/b-c*d == 10) printf("%d/%d-%d*%d\n", a, b, c, d);
else if(a/b-c/d == 10) printf("%d/%d-%d/%d\n", a, b, c, d);
else if(a/b*c+d == 10) printf("%d/%d*%d+%d\n", a, b, c, d);
else if(a/b*c-d == 10) printf("%d/%d*%d-%d\n", a, b, c, d);
else if(a/b*c*d == 10) printf("%d/%d*%d*%d\n", a, b, c, d);
else if(a/b*c/d == 10) printf("%d/%d*%d/%d\n", a, b, c, d);
else if(a/b/c+d == 10) printf("%d/%d/%d+%d\n", a, b, c, d);
else if(a/b/c-d == 10) printf("%d/%d/%d-%d\n", a, b, c, d);
else if(a/b/c*d == 10) printf("%d/%d/%d*%d\n", a, b, c, d);
else if(a/b/c/d == 10) printf("%d/%d/%d/%d\n", a, b, c, d);
ちなみに手元では完成してますが、面白いですねこれ。
組み方によっては別解全部表示できますし。
iPhoneアプリとかであったら嬉しいかも。
補足
値を取り出すまではできました。 以下のプログラム文に結果が10になる四則演算を表示させるとしたらどのように追加したらよろしいですか? たしか小町演算というのを使うらしいですが、使い方がわかりません。 for文がいくつも連続してるらしいですが。 #include<stdio.h> int main(void) { char num[10]; int val[4]; int i; printf("式:"); scanf("%s",num); for(i=0;i<4;i++){ val[i] = 0; } for(i=0; i<4; i++){ if((num[i] >= '1') && (num[i] <= '9')){/*1から9の数値が入ったならば*/ val[i] = num[i]-'0'; } } for(i=0; i<4; i++){ printf("答え%d:%d\n",i,val[i]); } return 0; }