@appare

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

c言語の問題で 1から10までの乱数を発生させ、もしも5以上だったら、その数だけ★マークを表示し、5未満だったら、その数を表示するプログラムを作りなさい。 がクリアできません.

###c言語の問題で
1から10までの乱数を発生させ、もしも5以上だったら、その数だけ★マークを表示し、5未満だったら、その数を表示するプログラムを作りなさい。
がクリアできません.

発生している問題・エラー

data argument not used by format string [-Wformat-extra-args]
        printf("★\n",d);
出ているエラーメッセージを入力
``` warning: data argument not used by format string [-Wformat-extra-args]
        printf("★\n",d);


### 該当するソースコード
```C言語

ソースコードを入力
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
  
int main(void){
    int n;
    int d;
    
    srand((unsigned)time(NULL));

    for(n=1;n<=5;n++){
    d = rand()%10+1;
    if(d>=5){
        printf("★\n",d);
    }else{
        printf("数値:%d\n",d);
    }
    
    }
    
    return 0;
    }

自分で試したこと

for文は使う必要がないと思いますが,一気に5個出したいなと思い書いています.申し訳ないですが,★を数値の数だけ出力するにはどうしたら良いでしょうか.

0 likes

1Answer

★を数値の数だけ出力するにはどうしたら良いでしょうか.

for文を使って改行なしに数値分★を出力するといいと思います。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
  
int main(void){
    int n;
    int d;
    
    srand((unsigned)time(NULL));

    for(n=1;n<=5;n++){
        d = rand()%10+1;
        if(d>=5){
            for(int i=1;i<=d;i++){
                printf("★");
            }
            printf("\n");
        }else{
            printf("数値:%d\n",d);
        }
    }
    return 0;
}
出力例
数値:3
数値:1
★★★★★★★★★
★★★★★
数値:1
2Like

Comments

  1. @appare

    Questioner

    ありがとうございます😭改行はいらなかったですね
    int iが必要だと気が付きませんでした

Your answer might help someone💌