C言語関係掲示板

過去ログ

No652 入力数字分の1234567890を繰り返す

[戻る] [ホームページ]
No.7120

12345678901234567890123・・・
投稿者---大学生(2003/06/05 18:04:50)


やっとfor文を習いました。
あのー皆さんから厳しい言葉をいただいた*をたてに連続して表示するプログラムも自力で解決しました。
ですが今回はかなりの難題です。どうか回答を見せてください。
問題:下に示すように1234567890を繰り返し表示するプログラムを作成せよ。なお、表示する数字は、読み込まれた整数値の個数とする。
例:25
1234567890123456789012345
私は1234567890の繰り返しならできるのですが個別に1〜9,0までの数字を繰り返すことができません。

No.7125

Re:12345678901234567890123・・・
投稿者---イルツオ(2003/06/05 19:07:52)


#include <stdio.h>

int main(void)
{
  int i, n;

  printf("表示させたい個数: ");
  scanf("%d", &n);

  for (i = 1; i <= n; i++)
    printf("%d", i%10);

  putchar('\n');
  return 0;
}


これでいいと思うけど・・・。

No.7127

Re:12345678901234567890123・・・
投稿者---よた(2003/06/05 19:58:38)


>これでいいと思うけど・・・。

#include <stdio.h>

int main(void)
{
    int i, n;

    printf("表示させたい個数: ");
    scanf("%d", &n);

    for (i = 1; i <= n; i++)
    {
        printf("%d", i - ( i / 10 * 10 ) );
    }

    putchar('\n');
    return 0;
}

これならどうだ。

No.7130

Re:12345678901234567890123・・・
投稿者---物見遊山(2003/06/05 20:13:56)


#include <stdio.h>

main(void)
{
    /* もっともっと長く!こんなんじゃ全然足りない!! */
    const char * const str = "12345678901234567890123456789012345678901234567890";
    int in;

    printf("入力してー:");
    scanf("%d", &in);

    printf("%.*s\n", in, str);
    return 0;
}


No.7135

Re:12345678901234567890123・・・
投稿者---あかま(2003/06/05 21:47:58)


if文で10まで数えたら0に戻すのが楽でないかい?
それじゃつまらないか…


No.7142

Re:12345678901234567890123・・・
投稿者---あかま(2003/06/06 00:22:48)


他には解答ないですかね?
たまにこんなコード書くことありますけど、やっぱり%使うのが一番速いかな?
繰り返しが0〜7みたいな2の乗数個の要素だったら、00000111みたいなビット列と&使って出来そうですけど。

No.7155

Re:12345678901234567890123・・・
投稿者---みけ(2003/06/06 11:58:05)


> 他には解答ないですかね?
物見遊山さんのを改造して、こんなのとか。

#include <stdio.h>

int main(int argc, char* argv[]) {
    int num;
    printf( "表示する桁数は?: " );
    scanf( "%d", &num );

    char temp[] = "1234567890";
    int i;
    for( i = 0; i < num / 10; i++ ) {
        printf( temp );
    }
    printf( "%.*s\n", num - i * 10, temp );
    printf( "\n" );
    return 0;
}