C言語のfor文問題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
KKK

C言語のfor文問題

#1

投稿記事 by KKK » 15年前

わからない問題がありまして・・・

下のアスタリスクを表示させる問題なのですが・・・

課題の締め切りはあと僅かで、考えてる暇もないので、

わかる方いたら、C言語のソースコードだけでいいので、教えてくだい、お願いします

ただし、printfで、全てのアスタリスクを表示させるのはNGで、配列も使ってはいけません。

C言語はfor文が苦手です・・・


(1)

   *
   **
   ***
   **
   *

(2)

   *
  ***
  *****
   ***
  *

(3)

   **
  ****
   **

↑コンパイラした後の、表示イメージはこんな感じです。

以上3問です。

パコネコ

Re:C言語のfor文問題

#2

投稿記事 by パコネコ » 15年前

ソースを直接教えるのはここではアウトなんですよね。
考え方と解き方もしくはヒントでよければ…

多分そのうち怒られますよ?「利用規約読んでください」って…

パコネコ

Re:C言語のfor文問題

#3

投稿記事 by パコネコ » 15年前

この形で固定ですか?
たとえば入力してその数値が一辺の長さになったり…

Poco

Re:C言語のfor文問題

#4

投稿記事 by Poco » 15年前

> ただし、printfで、全てのアスタリスクを表示させるのはNGで、配列も使ってはいけません。

では、puts使えば良いんじゃないですか?

パコネコ

Re:C言語のfor文問題

#5

投稿記事 by パコネコ » 15年前

…後で先生に怒られる気がする…

MAY

Re:C言語のfor文問題

#6

投稿記事 by MAY » 15年前

とりあえず先生に怒られてきましょう
それがいやならまずはソースを書いてみましょう

シエル

Re:C言語のfor文問題

#7

投稿記事 by シエル » 15年前

ほとんど同じような質問前になかったっけ?

パコネコ

Re:C言語のfor文問題

#8

投稿記事 by パコネコ » 15年前

返信待ってても無駄な気がしてきたので、
一つ目のヒントでも…
(1)

*
**
***
**
*
これを、表にします。
行:数
1: 1
2: 2
3: 3
4: 2
5: 1
3までは一つずつ大きくなって、それ以降減っていきます。
for文苦手らしいですが、意味の理解はできてますか?
一応それも書いときます。
for(①;②;③){

}
 まず最初に①を行います。
これはfor文に入った時の一回だけです。
おもに数値の初期化みたいなのが入ることが多いです。
a=0
みたいなの

次に②です。
条件式です。
if文みたいなものです。わかりますか?

最後に③です。
一番下の「}」のときに処理します。
たとえば
a=a+1
みたいな式が入ることが多いです。
わからないところはどこですか?

Poco

Re:C言語のfor文問題

#9

投稿記事 by Poco » 15年前

大学の場合だと、先生が怒るってことは、まず無いと思いますよ。
単純に単位がもらえなくなるだけです。

パコネコ

Re:C言語のfor文問題

#10

投稿記事 by パコネコ » 15年前

この問題では式の部分に
printf("*");
を入れてあげてください。
これでできるはずです。
一度書いてみてください。それでもわからないところはお教えします。
あとこれの場合for文は重ねて使います。

パコネコ

Re:C言語のfor文問題

#11

投稿記事 by パコネコ » 15年前

そういえば大学の先生は怒ってくれないってよく先生(高校の)が、言ってましたね。
ソースかけたら、できれば張ってくださいね。
3問ぐらいならそんなに時間掛からないと思うので、1時間かからないかと…
(教えてもらいながらでも)

MAY

Re:C言語のfor文問題

#12

投稿記事 by MAY » 15年前

(1)の場合だと
for(・・・){
for(・・・)

}
for(・・・){
for(・・・)

}
出来ると思います

パコネコ

Re:C言語のfor文問題

#13

投稿記事 by パコネコ » 15年前

本人見てますかね?
もう寝てますか~?

MAY

Re:C言語のfor文問題

#14

投稿記事 by MAY » 15年前

やっぱりこういう課題出るのって大学なんですかね

KKK

Re:C言語のfor文問題

#15

投稿記事 by KKK » 15年前

> ソースを直接教えるのはここではアウトなんですよね。
> 考え方と解き方もしくはヒントでよければ…
>
> 多分そのうち怒られますよ?「利用規約読んでください」って…ぎり

今回限りでお願いします、とにかく時間がないので。

この課題が終われば、次からは、夏休みにはいるので、そこからは自力で解けるようにします。

シエル

Re:C言語のfor文問題

#16

投稿記事 by シエル » 15年前

まったく分からないのはひどすぎます。
少しは自分で考えてコードを提示しましょう。

MAY

Re:C言語のfor文問題

#17

投稿記事 by MAY » 15年前

とりあえず書けたところまででもいいのでソースを見せてください

パコネコ

Re:C言語のfor文問題

#18

投稿記事 by パコネコ » 15年前

/*
課題の締め切りはあと僅かで、考えてる暇もないので、
わかる方いたら、C言語のソースコードだけでいいので、教えてくだい、お願いします
*/
とりあえずこの文章の悪いところを書いときますね。
締め切りまであと僅か?難しくてわからないのはわかりますが、時間が足りなくなるほどの問題じゃないです。
解き方さえわかれば、時間はあまりかかりません。

ソースコードだけでも?ソースコードって丸っきり答えじゃないですか!
利用規約読まないと結構反応冷たいですよ。

とりあえず丸投げどころか、答えだけを請求するのはひどいですよ~。

KKK

Re:C言語のfor文問題

#19

投稿記事 by KKK » 15年前

すいません、

じゃあ自分なりに書いたコードを書きますね。

include<stdio.h>
         void main (void)
   {
    int i,b;

       for(i=0; i<5; i++)
      {
      if(i<3)
 {
for(b=0; b<=i; b++)
{
printf("*");
}
   }
  else
   {
for(i=3; i0; i--)

{
printf("*");
}
}
printf("\n");
}


}

パコネコ

Re:C言語のfor文問題

#20

投稿記事 by パコネコ » 15年前

やる気があるなら付き合いますけど…他にもやらないといけない宿題でも溜まっているんですか?
とにかく実際に動かなくてもいいので自分でできるところまでソースのせてください。
足りない部分を埋めながらでも教えますから…2時までには終わりますよ…順調にいけばですけど
================
タイミングが…失礼
画像

パコネコ

Re:C言語のfor文問題

#21

投稿記事 by パコネコ » 15年前

#include<stdio.h>
void main (void)
{
int i,b;
for(i=0; i<5; i++){
if(i<3)for(b=0; b<=i; b++)printf("*");
else for(b=i; 0<b; b--)printf("*");
printf("\n");
}
}
とりあえず見ずらかったので書き換えました。
#つけ忘れてますよ…2つ目のループではiではなくbでループしましょう。
少し待ってくださいね、どう直せばよくなるか、見てみます。

KKK

Re:C言語のfor文問題

#22

投稿記事 by KKK » 15年前

ありがとうございます、ホントに。

MAY

Re:C言語のfor文問題

#23

投稿記事 by MAY » 15年前

外側のforのカウント用の変数にiを使っているのに内側のforのカウント用の変数にもiを使っています

パコネコ

Re:C言語のfor文問題

#24

投稿記事 by パコネコ » 15年前

とりあえずできるだけ近い形で修復しました。
#include<stdio.h>
void main (void)
{
int i,b;
for(i=1; i<=5; i++){
if(i<3)for(b=0; b<i; b++)printf("*");
else for(b=6-i; 0<b; b--)printf("*");
printf("\n");
}
}
最初のfor文のとき、0からやっていたので中のループからすれば1回行いません
6-iは前に書いたグラフから式を出しました。

パコネコ

Re:C言語のfor文問題

#25

投稿記事 by パコネコ » 15年前

どこで何を行っているのかさえわかっていただければいいと思います。
元のソースを見てみるとiの値を触るなどのミスもありますが、結構おしいところまでできていました。
時間ないらしいのでソース書きましたが…。
次の問題も完成したら(未完成でも可)張ってくださいね。

MAY

Re:C言語のfor文問題

#26

投稿記事 by MAY » 15年前

else for(b=5-i;b>0;b--)
だと思うんですけど

KKK

Re:C言語のfor文問題

#27

投稿記事 by KKK » 15年前

> どこで何を行っているのかさえわかっていただければいいと思います。
> 元のソースを見てみるとiの値を触るなどのミスもありますが、結構おしいところまでできていました。
> 時間ないらしいのでソース書きましたが…。
> 次の問題も完成したら(未完成でも可)張ってくださいね。

どーも、付き合ってくれてありがとうございます。

パコネコ

Re:C言語のfor文問題

#28

投稿記事 by パコネコ » 15年前

それだとi=5のとき足りなくなりません?

パコネコ

Re:C言語のfor文問題

#29

投稿記事 by パコネコ » 15年前

/*
else for(b=5-i;b>0;b--)
だと思うんですけど
*/
これだと他のところもいじればいいけど、ここだけなら駄目だと思う

================
たとえば
for(i=0; i<=5; i++){
if(i<3)for(b=0; b<=i; b++)printf("*");
else for(b=5-i; 0<b; b--)printf("*");
printf("\n");
}
こんなんですよね。
画像

MAY

Re:C言語のfor文問題

#30

投稿記事 by MAY » 15年前

else for(b=0;b<5-i;b++)
でも出来ると思います

パコネコ

Re:C言語のfor文問題

#31

投稿記事 by パコネコ » 15年前

もともとb--って書いてたのでそっちで書きました。

MAY

Re:C言語のfor文問題

#32

投稿記事 by MAY » 15年前

すいません携帯から何で間違ってるといけないんで後は任せますね

Poco

Re:C言語のfor文問題

#33

投稿記事 by Poco » 15年前

> やっぱりこういう課題出るのって大学なんですかね

というか、この時期に課題が出るのが大学なんです。
#そして、不真面目な学生がネットで課題を丸投げするのが、この時期の風物詩の一つです。

まあ、(2)(3)もパコネコさんが提示したソースをベースにすれば大丈夫でしょうね。
アスタリスクの出力回数を変更するだけだし。

パコネコ

Re:C言語のfor文問題

#34

投稿記事 by パコネコ » 15年前

グラフいります?

パコネコ

Re:C言語のfor文問題

#35

投稿記事 by パコネコ » 15年前

付き合いたいですが親がうるさくて(明日も学校で)…仕方ないので寝ます。
最後までつきあえなくてごめんなさい。
また明日きます。

MAY

Re:C言語のfor文問題

#36

投稿記事 by MAY » 15年前

ちょっとヒント(2)
今回は*だけではなく空白(_)も描画しなくてはなりません
__*
_***
*****
_***
__*

MAY

Re:C言語のfor文問題

#37

投稿記事 by MAY » 15年前

ちなみに課題の提出日はいつですか?

パコネコ

Re:C言語のfor文問題

#38

投稿記事 by パコネコ » 15年前

それ私も気になっていました

パコネコ

Re:C言語のfor文問題

#39

投稿記事 by パコネコ » 15年前

ちなみに今はpspからです。
長い文はしんどいから書かないけど・・・

MAY

Re:C言語のfor文問題

#40

投稿記事 by MAY » 15年前

携帯よりはましですよ

パコネコ

Re:C言語のfor文問題

#41

投稿記事 by パコネコ » 15年前

更新ボタン押した後長いんですよね
書いてる間は、前の文見えませんし

MAY

Re:C言語のfor文問題

#42

投稿記事 by MAY » 15年前

書いている間前の文が見れないのは同じです

それにしても遅いですね大丈夫かな

MAY

Re:C言語のfor文問題

#43

投稿記事 by MAY » 15年前

もしかしてもう解決してるとか?
携帯からでは見れないので

それか明日までじゃないのか

KKK

Re:C言語のfor文問題

#44

投稿記事 by KKK » 15年前

> もしかしてもう解決してるとか?
> 携帯からでは見れないので
>
> それか明日までじゃないのか
>
>

今日までです

さかまき

Re:C言語のfor文問題

#45

投稿記事 by さかまき » 15年前

最小2乗法による離散データの近似結果を用い、1~5における
スペースの数、星の数を数式化して解く方法です。
printfと配列をつかわずに(1)と(2)を解いてみました。

ちなみに(3)の星の数の方程式は
-2 * x*x + 8x -4 (x=1,2,3) です。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int    funcSpace(int x)
{
double y=0.0;

    y += -(1.0 / 6.0)  * pow(x,4);
    y += 2.0 * pow(x,3) ;
    y += -(235.0 / 30.0) * pow(x,2) ;
    y += 11.0 * x ;
    y += -3.0  ;
    return (floor(y + 0.5));
}

int    funcAsterisk(int x)
{
double y=0.0;

    y += (1.0 / 3.0)  * pow(x,4);
    y += -4.0 * pow(x,3) ;
    y += (141 / 9.0) * pow(x,2) ;
    y += -22.0 * x ;
    y += 11.0  ;
    return (floor(y + 0.5));
}


void    drawSpace(int j)
{
    j=funcSpace(j);
    while(j>0)
    {
        putchar (' ');
        j--;
    }
}


void    drawAsterisk(int j)
{
    j=funcAsterisk(j);
    while(j>0)
    {
        putchar ('*');
        j--;
    }
}

main()
{
int    i;
    // (1)
    puts("(1)");
    for(i=1;i<6;i++)
    {
        drawAsterisk(i);
        puts("");
    }

    // (2)
    puts("(2)");
    for(i=1;i<6;i++)
    {
        drawSpace(i);
        drawAsterisk(i);
        puts("");
    }
}

パコネコ

Re:C言語のfor文問題

#46

投稿記事 by パコネコ » 15年前

今日までってことはもちっと早く知りたかった…
今日ってことはもう手遅れか…

閉鎖

“C言語何でも質問掲示板” へ戻る