ページ 11

for文とswitch文の問題

Posted: 2019年1月20日(日) 03:39
by Nir
forとswitchとprintf("なま"); printf("むぎ"); printf("ごめ"); printf("たまご");を使い、「なまむぎなまごめなまたまご」を表示させるプログラムを作りたいのですがよくわからないので教えていただけると嬉しいです。

for文

Posted: 2019年1月20日(日) 03:41
by Nir
forとprintf("#");とprintf("%d", i);を使って
#1
##2
###3
####4
#####5

こんな感じに文字が並ぶプログラムを組みたいです。
入力した文字を並べるまでは出来たのですが、そこからが全くわからなく困っています。

#include<stdio.h>
int main()
{
int i;
int num;
scanf("%d",&i);
for(num=0;num<i;num++){
printf("*");
}

return 0;
}

Re: for文とswitch文の問題

Posted: 2019年1月20日(日) 08:31
by Math
#1
む、新種のクイズでしょうか。

C++Builder (C++17対応)使用

cx.bat

コード:

"C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\bcc32" main.cpp

dir main.exe

main.exe

pause
main.c

コード:

#include <stdio.h>

int main(void){

    for (int i=0; i<6; i++){

        switch(i){

            case 0:
            case 2:
            case 4:
                    printf("なま"); 
                    break;

           case 1:
                    printf("むぎ"); 
                    break;

           case 3:
                    printf("ごめ"); 
                    break;

           case 5:
                    printf("たまご"); 
                    break;


        }
    }

    return 0;

}
cx.bat をダブルクリック
http://www2.koyoen.birdview.co.jp/~abcx ... 20-01-.PNG

Re: for文とswitch文の問題

Posted: 2019年1月20日(日) 08:58
by Math
#2

main.c

コード:

#include <stdio.h>

int main(void){

    int i;
    int num;

    scanf("%d",&i);

    for (int j=1; j<=i; j++){

          for(num=0;num<j;num++){
              printf("*");
          }
          printf("%d\n",j);

    }

    return 0;

}
http://www2.koyoen.birdview.co.jp/~abcx ... 20-02-.PNG

Re: for文とswitch文の問題

Posted: 2019年1月20日(日) 15:02
by Nir
実行する順番をcaseで順番通りに書けばよかったんですね!
ありがとうございます。

Re: for文とswitch文の問題

Posted: 2019年1月20日(日) 15:55
by Math
そうですね。

最近の処理系は for文の中で変数を宣言出来るので

for (int i=0; i<6; i++){

と書いてあります。

Re: for文とswitch文の問題

Posted: 2019年1月20日(日) 18:48
by かずま
解答は一つとは限りません。こんな風にも書けます。

コード:

#include <stdio.h>

int main(void)
{
	for (int i = 0; i < 3; i++) {
		printf("なま");
		switch (i) {
		case 0: printf("むぎ"); break;
		case 1: printf("ごめ"); break;
		default: printf("たまご");
		}
	}
}

Re: for文とswitch文の問題

Posted: 2019年1月20日(日) 21:09
by Math
[雑談] 参考

C++Buiderは
著名な「Borland C++Compiler 5.5」BCC55 の後継であり

 システム環境変数「Path」の変数値の編集をしておけば
同じ命令 bcc32 でコンパイルできます (^^;

ここではソースと同じ場所に varset.bat を置き最初に実行する。

http://8cmp.blog.fc2.com/blog-entry-10.htmlなどのソースを参考に

http://www2.koyoen.birdview.co.jp/~abcx ... 20-03-.PNG
とすればよい。

Re: for文とswitch文の問題

Posted: 2019年1月20日(日) 21:29
by Math
varset.bat は

コード:

set path=%path%;"C:\Program Files (x86)\Embarcadero\Studio\20.0\bin"
です。

Re: for文とswitch文の問題

Posted: 2019年1月20日(日) 22:14
by Math
もちろん Embarcadero C++ Compiler  bcc32c も

「Embarcadero C++ Compiler」の最新版 Clang 互換の bcc32x も余計な制限なしに使える。

https://forest.watch.impress.co.jp/docs ... 21005.html

Re: for文

Posted: 2019年1月21日(月) 00:10
by かずま
Nir さんが書きました:
6年前
forとprintf("#");とprintf("%d", i);を使って
#1
##2
###3
####4
#####5
printf("#");とprintf("%d", i);を使わないといけないん
ですよね。for文 1個で書いてみました。

コード:

#include <stdio.h>

int main(void)
{
	int n, i, j;
	scanf("%d", &n);
	for (i = j = 1; i <= n; j++)
		i < j ? printf("%d", i), printf("\n"), i++, j = 0 : printf("#");
}

Re: for文とswitch文の問題

Posted: 2019年1月21日(月) 06:36
by Math
[雑談] 参考

C++Builder は viewtopic.php?f=3&t=20503

の#3で書いたように C# とは双子のようなもので C++ では 唯一の RAD 環境である。

C++17に対応し Clang互換を追求したEmbarcadero C++ Compilerを内包し

マルチプラットフォーム開発ができ iPhone,Android スマホのプログラムが開発出来る。

C++Bilder10.3 Rio Community は無料です。

なおVS2017ではC++でXAML(ザムル)が使えるようにはなっている。