タイトル以外に、質問も良く分かりません。
「プログラムがうまく行きません」だと、何がどう上手くいかないのかが不明です。
こちら側で実行して、何を聞きたいのかを推測しないといけません。
場合によっては、見当違いの回答が返って来る可能性もありますよ。
--------------------------------------------
①エラーが出て、エラーの対処が分からない
②実行できるものの、意図した結果にならない
③その他の問題が発生した
--------------------------------------------
上記のように具体的に述べたほうが良いと思います。
そして、preタグも使うべきです。
で、実行してみたんですが、セミコロンが全角、printf関数の後ろに全角の空白がありました。
恐らく、どこからかコピペしてそのまま実行したんじゃないですかね?
(自分も、試しに大学の講義の資料をコピペ・実行して失敗した事があります)
-------------------------------------------------------------------
int main(void)
{
int y,m,d,ze;
char* day[7] = {"日","月","火","水","木","金","土"};
printf("何年かを入力して下さい");scanf("%d",&y);
printf("何月かを入力して下さい");scanf( "%d",&m);
printf("何日かを入力して下さい");scanf( "%d",&d);
ze = (y+(y/4)-(y/100)+(y/400)+(13*m+8)/5+d)%7;
printf("%3d年%3d月%3d日は\n",y,m,d);
printf("%s曜日です。\n",day[ze]);
return 0;
}
-------------------------------------------------------------------
こんな感じでいいんじゃないでしょうか。
switch文が冗長になってしまっていたので、少し変更してあります。
【追記】
ユーリさんのプログラムはprintf関数のところもおかしいです。
--------------------------------------------------------------------
printf("年=%d 月=年%d 日年=%d",y,m,d,ze);
--------------------------------------------------------------------
最後のzeに対応する書式指定文字がありません。