はじめまして

最後はスペースでなく改行

tenmusu
記事: 0
登録日時: 8年前

最後はスペースでなく改行

投稿記事 by tenmusu » 8年前

CODE:

#include 
int main(void) {
 
    int num;
    scanf("%d", &num);
 
    for (int i = 1; i <= 3; i++) {
 
        printf("%d ", num*i);
    }
    return 0;
}
上のコードは、整数を入力するとその数を1から3まで掛け算した結果をスペース区切りで表示するプログラム。
2と入力すると実行結果は"2 4 6 " 3と入力すると"3 6 9 "となります。

この実行結果の最後の出力にスペースが入らないようにするには…うーん。

例えば現段階では、2と入力した場合に"2スペース4スペース6スペース"となってしまいます
そうでなく"2スペース4スペース6改行" といった実行結果を表示させたいのですが
どうすればいいものか…

日記をご覧になった方、よろしければ参考になるサイトやヒントを頂きたいです。
最後に編集したユーザー tenmusu on 2017年1月21日(土) 13:43 [ 編集 2 回目 ]

Rittai_3D
記事: 525
登録日時: 12年前

Re: 最後はスペースでなく改行

投稿記事 by Rittai_3D » 8年前

はじめまして。Rittai_3Dと申します。
こういった方法はどうでしょうか。
http://melpon.org/wandbox/permlink/O4dEKVO9QyCmxPPA

【追記】リンク先まで飛ばないとソースが見られないのは少しアレなのでソースコードを。
► スポイラーを表示
最後に編集したユーザー Rittai_3D on 2017年1月21日(土) 17:02 [ 編集 1 回目 ]

tenmusu
記事: 0
登録日時: 8年前

RE: 最後はスペースでなく改行

投稿記事 by tenmusu » 8年前

> Rittai_3Dさんへ

はじめまして、コメント本当にありがとうございます

絶対違うよな~とか思いつつも、今

CODE:

#include 
int main(void) 
{

	int num;
	int i=1;
	scanf("%d", &num);

	while (i <= 2) {

		printf("%d ", num*i);
		i++;
		if (i == 3) {
			printf("%d\n", num*3);
		}
	}
	return 0;
}
こんな感じに改変してみたりして、これで合ってますか?と再度投稿しようと思ったら、もうコメント来ててビックリしました。

Rittai_3Dさんのコードを実行した結果、思っていた通りの実行結果が表示できました。

ただRittai_3Dさんのコードでなぜそうなるのか、よくわかってない部分もあるので、貼っていただいたコードを参考に自分で打ち込んで
これから改変してみたりしてみます。

本当にありがとうございます
最後に編集したユーザー tenmusu on 2017年1月21日(土) 14:53 [ 編集 1 回目 ]

Rittai_3D
記事: 525
登録日時: 12年前

Re: 最後はスペースでなく改行

投稿記事 by Rittai_3D » 8年前

>tenmusuさん
わからない部分があったら、わたしの分かる範囲ならば解説いたしますのでどんどん聞いてくださいね!

アバター
usao
記事: 1889
登録日時: 12年前

Re: 最後はスペースでなく改行

投稿記事 by usao » 8年前

ファイル出力等の際によくある
区切り文字を要素間にだけ入れたい状態 ですね.

私は
・最初の要素を出力
・2番目以降の要素は「区切り+要素」として出力
という形で書くことが多いです.

CODE:

#include 

int main(void) {
    int num;
    scanf("%d", &num);
    
    printf( "%d", num );  //最初の要素の出力だけループ外
    for( int i=2; i<=3; ++i )
    {
    	printf( " %d", num*i );  //スペース+要素
    }
    printf( "\n" );  //最後に改行
    
    return 0;
}

tenmusu
記事: 0
登録日時: 8年前

RE: 最後はスペースでなく改行

投稿記事 by tenmusu » 8年前

> Rittai_3Dさんへ
ありがとうございます。
Rittai_3Dさんのコードにあった「?」に何の意味があるんだと言うことがわかっていませんでした…
三項演算子というのですね。

> usaoさんへ
はじめまして、コメントありがとうございます。
要素+スペースでループさせていたから最後にもスペースが入ってしまっていたんですね
スペース+要素でループ、最後に改行。なるほど…こちらもとても参考になります

お二方ともありがとうございます。