マルシェル新規登録で5000円分当たる

すいません、次のC言語のプログラムについて教えてください!
下の出力結果のように*を表示するプログラムを作れ
横方向に表示する*の数nをキーボードから入力できるようにすること。
実行例         実行例
n =3 n =5
  *            *
 **           **
***          ***
**          ****
*          *****
           ****
           ***
           **
           *

A 回答 (2件)

#include <stdio.h>


#include <stdlib.h>

int main(void) {
 char s[3];
 char* str;
 int i, j, n;

 printf("n = ");
 scanf ("%2s%*[^\n]%*c", s);
 n = 3 * atoi(s);
 str = (char *)malloc(sizeof(char*) * n);

 for (i = 0; i < n; i++) {
  if ((i >= n/3) && (i < 2*n/3)){
   str[i] = '*';
  } else if (i == n-1) {
   str[i] = '\0';
  } else {
   str[i] = ' ';
  }
 }
 for (i = 1; i < 2*n/3; i++) {
  for (j = i; j < i + n/3; j++) {
  printf("%c", str[j]);
  }
  printf("\n");
 }

 free(str);
 return EXIT_SUCCESS;
}
    • good
    • 0

nまではスペースが先で、越えたらアスタリスクが先。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング