アプリ版:「スタンプのみでお礼する」機能のリリースについて

1~9の数字を9,8,7,6,5,4,3,2,1と出力するようなプログラムを作成しているのですが、解りません。一応ある程度(以下のプログラム)出来たのですが、何処をどう直せばいいか解りません。何処を直せばいいか教えて下さい。
#include<stdio.h>
int main(void){
int i,mt[3][3]=
{{1,2,3},
{4,5,6},
{7,8,9}};
for(i=0;i<3;i++){
printf("%3d",mt[i][i]);
}

printf("\n");
return(0);
}

A 回答 (7件)

補足してください。



何をどうしたいの?
配列に入っている要素を、どのように表示したいのかが全くわかりません。

ただ9~1まで表示するなら配列はいらないでしょ?
#include <stdio.h>
int main(void){
int i;
for(i=9;i>0;i--){
printf("%3d",i);
}
printf("\n");
return(0);
}
で十分。

具体的に、配列に対してどういう操作がしたいのかを補足してください。

この回答への補足

申し訳御座いません、遅れました。補足要求、という事で補足させて頂きます。
まず先に言っておかねばならないのが、あくまで二次元配列を使うという点。
確かに9から順に1までを出力するものは、配列を使わなくても可能です。ですが、プログラミングを勉強している身なので、色々といじくっている訳です。
お気付きかと思いですが私が示したものは、1,5,9を出力するものです。更に9,5,1を出力するものも出来たのですが、もう一歩踏み込んで、9,8,7,6,5,4,3,2,1の順で出力しよう、という事になりました。
つまり、私が示した配列(必須)をいじくり、9から順に1まで出力したいのです。
何も二次元配列じゃなくても、と言われる方がいらっしゃるかもしれませんが、あえてそこはつっこまないようお願い致します。

補足日時:2008/12/29 20:51
    • good
    • 0

二次元を使いたいのであれば、カウンター変数は二つ用意する事が


一般だと思われます。

mtの宣言は、質問のままだとして、ロジック部分は、順次的に
デクリメントし、以下になるかと思われます。

int i,j;
for(i=2;0<=i;i--){
for(j=2;0<=j;j--){
printf("%d,",mt[i][j]);
}
}
    • good
    • 0

>1~9の数字を9,8,7,6,5,4,3,2,1と出力するようなプログラム



言葉通りだったら、以下でよいのでは?

#include <stdio.h>
int main(void){
printf("9,8,7,6,5,4,3,2,1");
}

何で配列が必要なのか、さっぱりわかりません!
    • good
    • 0

どうしても2次元配列を使いたいのであれば、



#include <stdio.h>

int main(void)
{
int mt[3][3] = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 },
};
int i, j;
for (i = sizeof(mt) / sizeof(mt[0]) - 1; i >= 0; --i) {
for (j = sizeof(mt[0]) / sizeof(mt[0][0]) - 1; j >= 0; --j) {
printf("%d%s", mt[i][j], (i != 0) || (j != 0) ? "," : "");
}
}
putchar('\n');
return 0;
}
    • good
    • 0

#3さんへ



「これは、仕様に合っていないかもしれません。」
そうかもしれません。ただ質問者さんの記載した物を使っただけ(配列の部分を削除しただけ)ですから。(w

「数値どうしをカンマでつなぐことになっているようです。」
なるほど…。では、
#include <stdio.h>
int main(void){
int i;
for(i=9;i>1;i--){
printf("%d,",i);
}
printf("%d\n",i);
return(0);
}
で、どうだろう…。
    • good
    • 0

>#1さん


>printf("%3d",i);

これは、仕様に合っていないかもしれません。

>9,8,7,6,5,4,3,2,1

数値どうしをカンマでつなぐことになっているようです。
    • good
    • 0

確かに#1さんのおっしゃる様に意図がいまいちつかめませんね.



推測されるのは,以下でしょうか.
・二次元配列の要素の入替え(上下・左右反転,縦横置換など)
・一定規則による数字の置換(入力が1なら9を出力,入力が6なら4を出力.つまり入力がNなら(10-N)を出力)

現状で回答できるのはこの程度です.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!