- ベストアンサー
whileでの繰り返し表示
すみません。C の初心者です。 while()で下記の内容を作成しようと しているのですが、putchar()を使わず 作成すると言う相談です。 また、prinrf()を使わないで 実行例が出来るのでしょうか? ※10が入力され場合の実行の時 ********** ←10個 0または負の値が入力されると、「*」は表示せず、改行のみを表示すること。 基本的事で恐縮ですが、初心者に分かり易く教えて下さい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>しているのですが、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)
> 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)
××を使わないで。とありますが、逆に何を使っていいというのは明確になっていないのでしょうか? 標準出力に送ることを考えても、 f?puts/[sf]?printf/f?putc とかありますし、コンパイラによっては putch なんてのもあります。
- yaemon_2006
- ベストアンサー率22% (50/220)
"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; }
- yaemon_2006
- ベストアンサー率22% (50/220)
#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; }