Tの個数

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

Tの個数

#1

投稿記事 by つばさ » 18年前

今、学校の授業でファイルの入出力をやっています。
"rand.dat"には0~1の乱数が入っています。0.5未満の時には"T"が表示されそれ以外は"H"が表示されるようにするよう指示されました。そこまではできていると思うのですが。。。
最後にTがいくつ表示されたかをカウントするプログラムを入れなければならないのですができません。
何が間違っているのか教えてください。お願いします。


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 100
int main(void)
{
int i,b=0;
double y,a[N];
FILE *fp1,*fp2;
fp1=fopen("rand.dat","r");
fp2=fopen("dice.dat","w");
for(i=0;i<=N-1;i++){
fscanf(fp1,"%lf",&a);
}
for(i=0;i<=N-1;i++){
// printf("\n%d,%f",i,a);
if(a<0.5){
fprintf(fp2,"H");
printf("H");
}
else{
fprintf(fp2,"T");
printf("T");
}
}
printf("\n");

      /* ここから先がつまづいてる部分です。 */
for(i=0;a!='\0';i++){
if("a=='T'"){
b++;
}
}
fprintf(fp2,"Tは%d個あります。\n",b);
printf("Tは%d個あります。\n",b);



fclose(fp1);
fclose(fp2);
return 0;
}

F

Re:Tの個数

#2

投稿記事 by F » 18年前

for(i=0;a!='\0';i++){
if("a=='T'"){
ぱっとみたところではこれがまずおかしいと思います
aに入ってるのは小数点では?

F

Re:Tの個数

#3

投稿記事 by F » 18年前

#include<stdio.h> 
#include<stdlib.h> 
#include<time.h> 
#define N 100 
int main(void) 
{ 
	int i,b=0; 
	double y,a[N]; 
	FILE *fp1,*fp2; 
	fp1=fopen("rand.dat","r"); 
	fp2=fopen("dice.dat","w"); 
	for(i=0;i<=N-1;i++){ 
		fscanf(fp1,"%lf",&a); 
	} 
	for(i=0;i<=N-1;i++){ 
		// printf("\n%d,%f",i,a); 
		if(a<0.5){ 
			fprintf(fp2,"H"); 
			printf("H"); 
		} 
		else{ 
			fprintf(fp2,"T"); 
			printf("T");
			b++;
		} 
	} 
	printf("\n"); 

	fprintf(fp2,"Tは%d個あります。\n",b); 
	printf("Tは%d個あります。\n",b); 



	fclose(fp1); 
	fclose(fp2); 
	return 0; 
}

つばさ

Re:Tの個数

#4

投稿記事 by つばさ » 18年前

確かに。。。
aに入ってるのは小数点です。
文字列の時にはこうしていたのでこれでいいんだと思っていました。
では、
(double)a
こういうのをつかうんですか??

つばさ

Re:Tの個数

#5

投稿記事 by つばさ » 18年前

わかりました!!!
ありがとうございました。

閉鎖

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