ここから本文です

#include<stdio.h>

moo********さん

2018/11/1515:41:48

#include<stdio.h>

int main() {
int a[7],i ;
a[0]=1;
for (i=1; i<= 7; i++){
a[i]=a[i-1]*1;
}
for(i=1;i<=7;i++)
printf("%d", a[i]);
return 0;
}
自分はこのように考えたのですが、出力結果が
1 2 6 24 120 720 7
になってしまうのですが原因わかりますか

閲覧数:
27
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

n2q********さん

2018/11/1518:32:10

~原因~

i <= 7 のところがまずいです。i < 7 ですね。


~改善~

次のようにすると上手く行きます。


(1)6行目

【今の形】for (i = 1; i <= 7; i++) {
【修正例】for (i = 1; i < 7; i++) {

(2)7行目

【今の形】a[i] = a[i - 1] * 1;
【修正例】a[i] = a[i - 1] * (i+1);

(3)9行目

【今の形】for (i = 1;i <= 7;i++)
【修正例】for (i = 0;i < 7;i++)

  • 質問者

    moo********さん

    2018/11/1522:02:54

    7行目の(i+1)は思いつかなかったです。
    ありがとうございます

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

aki********さん

編集あり2018/11/1515:50:59

何がしたいのかはわからないですが、
そのコードだと結果は
1111111
な上にメモリ破壊してるのでやっちゃいけないコードになってます。

答えが違うのはおそらくソースコードが違うのでは無いかと。
これ、元からのコピペでは無いですよね?
そのままだと動きませんので。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる