質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

5回答

763閲覧

コードのエラー(?)の理由を教えていただけないでしょうか。

kirbya

総合スコア10

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2022/05/23 05:24

編集2022/05/23 05:39

C言語記述についての質問です。

---「苦しんで覚えるC言語」(苦しんで覚えるC言語)というサイトでCの学習をしているにわか学生ですが、コードを記述している中でどうしても原因のわからない事があったので質問させていただきましたm(_ _)m
「入力された10個の数値を最後から表示するプログラムを作成せよ。」という問題で、
下記コードを書いたところ、どうしても下の画像のように☓☓☓ ☓☓☓ ☓☓☓ ☓☓☓...といった風になってしまいます。
どうしてなのでしょうか。教えてくれたらありがたいです。
ブラウザで動くC言語実行環境でコンパイラをダウンロードすることなく記述しています。---

C

1#include<stdio.h> 2int main(void) 3{ 4 int array[10]; 5 int i; 6 for(i=0;i<10;i++){ 7 scanf("%d",&array[i]); 8 } 9 for(i=9;i>=0;i--){ 10 printf("%d,",&array[i]); 11 } 12 return 0; 13}

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2022/05/23 05:27

そのコードをどういうふうに実行させたんでしょうか
kirbya

2022/05/23 05:31

ごめんなさいm(_ _)m書くのを忘れてしまってました。すいません😫。 「入力された10個の数値を最後から表示するプログラムを作成せよ。」 という問題の回答で書いたコードです。
y_waiwai

2022/05/23 05:34

そのコードを、どうやって実行したんでしょうか。 ふつう、C言語のコードは、コンパイルを行い、実行形式にしたあと、コマンドで実行しますが、 あなたの提示したものはどうもそうではないように思いますが。
guest

回答5

0

xxxと出力されるのはおそらく、その「ブラウザで動くC言語実行環境」の都合かと思われます。
実際にコンパイル、実行させるならそういう結果にはなりえません

あんましそのような誤解を招くような実行環境は初心者には向かないかと思いますが。

#コードの不具合については別回答の通り

投稿2022/05/23 05:44

y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2022/05/23 05:46

> 実際にコンパイル、実行させるならそういう結果にはなりえません 現になっているのにもかかわらず、そういうコメントは適当ではありません。 (他のコメントに書きましたが、「未定義の動作」で許容される範囲内です)
y_waiwai

2022/05/23 06:08

「私が知る限りにおいてそのような動作をするコンパイラは存在しません」程度にしたほうが良かったですね
Zuishin

2022/05/23 06:17 編集

> 「私が知る限りにおいてそのような動作をするコンパイラは存在しません」程度にしたほうが良かったですね あなたの知識の範囲はただの無駄情報なので、書く必要はありません。 「実際に存在している」ことの情報が寄せられたのを見た上で、そんなことを書いても誰の役にも立たないでしょう。なぜそれを書こうと思ったのか不思議です。
torikera

2022/05/31 00:02 編集

シミュレータでは暴走したりしないよう、XXXX等を表示しているのでしょう。実際にコンパイル、リンクして実行ファイル(.exe)を作成して実行すると、結果は保障されません。回答者が指摘されているように、ある程度練習されたらシミュレータは卒業されることをお勧めします。 回答に対するコメントについては、質問者のためになるかどうかをよく考えておこないましょう。
Zuishin

2022/06/01 04:02

「シミュレータ」が意味不明です。 何をシミュレータと呼んでいますか? 質問者のためにならないコメントなので、よく考えて行ってください。
guest

0

c

1printf("%d,",&array[i]); // &が余計

投稿2022/05/23 05:42

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

printf("%d,",&array[i]); ですが、%dの書式に対応して与えるべきものは整数そのものであって、ポインタではありません。

投稿2022/05/23 05:41

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

printf("%d,",&array[i]);

本当に表示したい物は,&array[i] ではなく array[i] だという話ですか.
(何故 XXX という出力なのかは知りませんけど)

投稿2022/05/23 05:41

fana

総合スコア11654

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2022/05/23 05:45

> 何故 XXX という出力なのかは知りませんけど 学習用の処理系で特殊なハンドリングをしている、という印象です(書式の間違いは未定義動作なので、勝手にこのような挙動を組み付けても全く問題ありません)。
kirbya

2022/05/23 05:45

ありがとうございます!! 「&array」ってちょっと見て気づきました😅
fana

2022/05/23 05:52

(書式指定ミスってる場合はたしか未定義だったっけ…? って調べてたところでした^^)
guest

0

治りましたーイメージ説明

投稿2022/05/23 06:25

kirbya

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問