• ベストアンサー

whileでの繰り返し表示

すみません。C の初心者です。 while()で下記の内容を作成しようと しているのですが、putchar()を使わず 作成すると言う相談です。 また、prinrf()を使わないで 実行例が出来るのでしょうか? ※10が入力され場合の実行の時 ********** ←10個 0または負の値が入力されると、「*」は表示せず、改行のみを表示すること。 基本的事で恐縮ですが、初心者に分かり易く教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
noname#22058
noname#22058
回答No.1

>しているのですが、putchar()を使わず >作成すると言う相談です。 printfを使います。 >また、prinrf()を使わないで >実行例が出来るのでしょうか? putcharを使います。 以下はprintfを使った例です。 #include <stdio.h> int main(void) { int n; puts("出力する*の数は?"); scanf("%d", &n); if (n <= 0) { printf("\n"); } else { while (n--) { printf("*"); } } return 0; }

その他の回答 (4)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.5

> putchar()を使わず > また、prinrf()を使わないで prinrfというのは知りませんが、printfなら使ってもよいということでしょうか? #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) {  if (argc < 2) return EXIT_FAILURE;  long n = strtol(argv[1], NULL, 0);  while (n-- > 0) printf("*");  printf("\n");  return EXIT_SUCCESS; } > 基本的事で恐縮ですが、初心者に分かり易く教えて下さい。 どの程度の初心者なのか知りませんが、上記で分からないのであれば、まともな入門書を1冊読むことを強くお勧めします。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.4

××を使わないで。とありますが、逆に何を使っていいというのは明確になっていないのでしょうか? 標準出力に送ることを考えても、 f?puts/[sf]?printf/f?putc とかありますし、コンパイラによっては putch なんてのもあります。

回答No.3

   "while"をつかってなかった。 #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char *str; int n; scanf("%d", &n); if(n < 0) n = 0; if((str = (char *)malloc(n + 1)) == NULL){ puts("Alloc Error"); exit(1); } str[n] = '\0'; while(-- n >= 0) str[n] = '*'; puts(str); return 0; }  

回答No.2

  #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char *str; int n; scanf("%d", &n); if(n < 0) n = 0; if((str = (char *)malloc(n + 1)) == NULL){ puts("Alloc Error"); exit(1); } memset(str, '*', n); str[n] = '\0'; puts(str); return 0; }  

関連するQ&A