このプログラムは、任意の数の整数を入力として取り、その整数とその数の星を出力します。
例えば
In: 1 2 3
Out:
1 | *
2 | **
3 | ***
もう一つの例:
In: 2 5 6 8
Out:
2 | **
5 | *****
6 | ******
8 | ********
どうすればいいのですか??
ところで、アマチュア C プログラマー
また、スタック オーバーフローの質問形式の行間に単一行スペース「\n」を追加するにはどうすればよいですか
このプログラムは、任意の数の整数を入力として取り、その整数とその数の星を出力します。
例えば
In: 1 2 3
Out:
1 | *
2 | **
3 | ***
もう一つの例:
In: 2 5 6 8
Out:
2 | **
5 | *****
6 | ******
8 | ********
どうすればいいのですか??
ところで、アマチュア C プログラマー
また、スタック オーバーフローの質問形式の行間に単一行スペース「\n」を追加するにはどうすればよいですか
行から数値を読み取るには、次のことができます。
#include <stdio.h>
int main(){
char buffer[1000];
if (fgets(buffer, sizeof(buffer), stdin) != 0){
int i,j,a;
for(i=0; sscanf(buffer+i,"%d%n",&a,&j)!=EOF; i+=j){
while(a-->0){
printf("*");
}
printf("\n");
}
}
return 0;
}
この方法では、ループを作成することをお勧めします。
ユーザーが「\n」を入力していない間、プログラムはそれらを整数と見なすことができるはずです。もちろん、他のチェックを追加することもできます。
このようなもの:
int number = 0;
char c = '';
while(c != '\n'){
getch(c);
scanf("%d", &number);
/*Do your star thing or add this number to an array for the later consideration*/
}
これは完全にはテストされていないため、変更が必要になる場合があります。
#include <stdio.h>
#define SIZE 8
int input_numbers(int numbers[]){
int i=0,read_count;
char ch;
printf("In: ");
while(EOF!=(read_count=scanf("%d%c", &numbers[i], &ch))){
if(read_count==2)
++i;
if(i==SIZE){
fprintf(stderr, "Numeric number has reached the Max load.\n");
return i;
}
if(ch == '\n')
break;
}
return i;
}
void output_numbers(int numbers[], int size){
int i,j;
printf("Out:\n");
for(i=0;i<size;++i){
printf("%d | ", numbers[i]);
for(j=0;j<numbers[i];++j){
printf("*");
}
printf("\n");
}
}
int main(void){
int numbers[SIZE];
int n;
n=input_numbers(numbers);
output_numbers(numbers, n);
return 0;
}