電子書籍の厳選無料作品が豊富!

 printf("\n中央値は%7.1fです。\n",median);の部分で%7.1fの7.1というのはどんな意味があるのでしょうか?

#include<stdio.h>
#include<conio.h>

void main()
{
int d[100];
int i,j,n,temp,n_med;
float median;

printf("データ数を入力してください。(最大100); ");
scanf("%d",&n);


for(i=0;i<n;i++){
printf("%d番目のデータは? ",i+1);
scanf("%d",&d[i]);
}


for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(d[i]<d[j]){
temp=d[i];
d[i]=d[j];
d[j]=temp;
}
}
}


n_med=n/2;
if(n==n_med*2){
median=(float)(d[n_med-1]+d[n_med])/(float)2;
}
else{
median=d[n_med];
}

printf("\n中央値は%7.1fです。\n",median);


getch();
}

A 回答 (2件)

printfの出力変換文字は処理系で独自拡張しているかもしれませんが、大抵こんな感じになるはずです。


・Flags:
 - left adjust
 + always sign
 space space if no sign
 0 zero pad
 # Alternate form: for conversion character o, first digit will be zero, for [xX], prefix 0x or 0X to non-zero, for [eEfgG], always decimal point, for [gG] trailing zeros not removed.
・Width:
・Period:
・Precision: for conversion character s, maximum characters to be printed from the string, for [eEf], digits after decimal point, for [gG], significant digits, for an integer, minimum number of digits to be printed.
・Length modifier:
 h short or unsigned short
 l long or unsigned long
 L long double

Conversions:
 d, i int; signed decimal notation
 o int; unsigned octal notation
 x,X int; unsigned hexadecimal notation
 u int; unsigned decimal notation
 c int; single character
 s char*;
 f double; [-]mmm.ddd
 e,E double; [-]m.dddddde(+|-)xx
 g,G double
 p void*; print as pointer
 n int*; number of chars written into arg
 % print %

%7.1fの場合、フラグなし、最小フィールド幅が7、小数点、精度1、変換修飾子なし、10進浮動小数点表記になります。
    • good
    • 0

この場合、最初の7は表示幅で1は、小数点以下の桁数です。


一般的には、指定したタイプによって意味が変わります。
    • good
    • 0

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


おすすめ情報