データの個数を計算して表示するプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
hjnkn

データの個数を計算して表示するプログラム

#1

投稿記事 by hjnkn » 12年前

はじめまして。
n個のデータを入力して、その後入力した2つの数値で分けられるデータの個数を計算して表示するプログラムを考えています。

#include <stdio.h>
main()
{
float data[100];
float a,b;
int n,i,y1=0,y2=0,y3=0;

printf("データの個数を入力:");
scanf("%d",&n);


for(i=0;i<n;i++){
printf("データ %d :",i+1);
scanf("%f",&data);
}


printf("数値1を入力:");
scanf("%f",&a);

printf("数値2を入力:");
scanf("%f",&b);


for(i=0;i<n;i++){
if(data<a){
data=y1;
}
if(data>=a && data<b){
data=y2;
}
if(data>=b){
data=y3;
}
}
printf("%f 未満のデータの個数 = %d\n",a,y1);
printf("%f 以上 %f 未満のデータの個数 = %d\n",a,b,y2);
printf("%f 以上のデータの個数 = %d\n",b,y3);

}

上記のものだと、最後の3つの個数がうまく表示されません。
間違いがあればご指摘をお願いします。

non
記事: 1097
登録日時: 15年前

Re: データの個数を計算して表示するプログラム

#2

投稿記事 by non » 12年前

コード:

	for(i=0;i<n;i++){
		if(data[i]<a){
			data[i]=y1;
		}
		if(data[i]>=a && data[i]<b){
			data[i]=y2;
		} 
		if(data[i]>=b){
			data[i]=y3; 
		}
	} 
y1,y2,y3をカウントしたことになりませんよ。
non

box
記事: 2002
登録日時: 15年前

Re: データの個数を計算して表示するプログラム

#3

投稿記事 by box » 12年前

hjnkn さんが書きました:

コード:

    if(data[i]<a){
     data[i]=y1;
実際に行ないたいことは、おそらく
「入力したデータがa未満ならば、a未満の個数を1増やす」ことだと思うのですが、
書かれているコードでは、
「入力したデータがa未満ならば、a未満の個数(ゼロで不変)をデータに代入」しています。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

閉鎖

“C言語何でも質問掲示板” へ戻る