掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.30241

配列について
投稿者---kokosan60(2007/05/30 22:49:20)


配列における一番目の要素以外を0にするプログラムについて、以下のプログラムのwhile文の中がわかりません。何を入れたらいいのでしょうか。また、他の部分で間違っている部分はありますか?
環境はVisualStudio 2005です。
#include <stdio.h>

int main(void)
{
int a[5] = {5, 10, 23, 6, 0};
int i, *b;

b = &a[0];
while (*b != 0){


}

b = &a[0];
for (i = 0; i < 5; i++){
printf("bの値 =%d\n", *b);
}
printf("\n");

return (0);
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:配列について 30242 επιστημη 2007/05/30 23:59:33
<子記事> Re:配列について 30243 ○× 2007/05/31 00:15:43
<子記事> Re:配列について 30250 acid 2007/05/31 11:54:00
<子記事> Re:配列について 30265 円零 2007/06/01 19:24:54


No.30242

Re:配列について
投稿者---επιστημη(2007/05/30 23:59:33)
http://blogs.wankuma.com/episteme/


一連の処理によって、
int a[5] = {5, 10, 23, 6, 0};
これがどうなればいいのですか?
最初の要素を除いて0にするってことだから
{ 5, 0, 0, 0, 0 } ですか?

"要素を0にする"の終了条件は?
while ( *b != 0 )
なら "0がみつかるまで" ってことになりますが。



この投稿にコメントする

削除パスワード

No.30243

Re:配列について
投稿者---○×(2007/05/31 00:15:43)


このプログラムはあなたが考えたのでは無いのでしょうか?
スレッドを乱立していますが、少しでも自分で考えようという姿勢が
全く感じらないのですが。
未だに字下げすらできないようでは、C言語以前の問題だと思います。


この投稿にコメントする

削除パスワード

No.30250

Re:配列について
投稿者---acid(2007/05/31 11:54:00)


>スレッドを乱立していますが
日付を見ると、22/28/30で、時間は常に23時前後、
何かの穴埋め的な問題が多い、基本的にこちらの質問は無視。

…学校で出た課題を、家に持って帰ってきて質問してます臭がプンプンします。

つーかいい加減字下げをする、問題の入力値と答えの期待値を挙げる、
自分で考える、ぐぐる、なりしないと、勉強になりませんよ。



この投稿にコメントする

削除パスワード

No.30265

Re:配列について
投稿者---円零(2007/06/01 19:24:54)


無理矢理そのwhile文に収まるように書くと…
#include <stdio.h>

int main(void)
{
int a[5] = {5, 10, 23, 6, 0};
int i, *b;

b = &a[0];
while (*b != 0){
    if(b == a){
        b = &i;
        i = 1;
    }
    a[i++] = 0;
    if(i == sizeof a / sizeof a[0]) break;
}

b = &a[0];
for (i = 0; i < 5; i++){
printf("bの値 =%d\n", b[i]);
} 
printf("\n");

return (0);
}

>他の部分で間違っている部分はありますか?
・b = &a[0] は b = a と書けば十分です(動作上は間違いではないにしても)。
・return (0) の括弧は不要です(あっても別に間違いではありませんが)。
・配列の最後の要素が必ずゼロであり、それ以外は必ずゼロ以外であることを、
 仕様として明言せずにそれを前提としている点は問題です。
・「bの値」としてb[0]を5回出力してますが、本当はb[0]〜b[4]を出力したいのでは?
・「HTML変換ツール」の言葉の意味を理解してないのでは。
 上記のリンク先へ」行って、テキストエリア内部を完全にクリアして、
 そこにソースコードを一切手を加えずにペーストして、"ConvHTML"ボタンを一回だけ押し、
 テキストエリア内をすべて選択してコピーし、それを投稿画面の本文欄にペーストするんです。
 推測ではありますが、十中八九使い方を間違えてるはず。
 万が一、どうしても字下げされないならpreタグを自分の手で打ち込んでください。
 仮にツールが作動しないとしてもそれで字下げしなくて良いことにはならないし。


この投稿にコメントする

削除パスワード

No.30271

Re:配列について
投稿者---yoh2(2007/06/03 01:43:04)


>>他の部分で間違っている部分はありますか?
>・b = &a[0] は b = a と書けば十分です(動作上は間違いではないにしても)。
>・return (0) の括弧は不要です(あっても別に間違いではありませんが)。

この2つは単にスタイルの問題ですね。
&a[0] や return (0) も推奨されない書き方ではないでしょう。
むしろ積極的に薦める例をよく見かけます。逆に a や return 0 を薦める例も
同じくらいよく見かけるのがややこしいところですが。

ただ、残りの3つは気をつけるべきでしょうね。

# 普段使いのWebブラウザでHTML変換ツールが動かないので手書きが多いなぁ……


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧