• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語のプログラムが作れません)

C言語で数列の0だけの部分の個数を数えるプログラムを作成する方法【サンプルコード付き】

このQ&Aのポイント
  • C言語で、数列の中に現れる0だけの部分の個数を数えるプログラムを作成する方法を解説します。
  • 特定の数(この場合は100)が2個連続して現れるまでの間に現れる0だけで構成される数列の0の個数をそれぞれ数えて、結果をファイルに出力します。
  • サンプルコードを使ってプログラムの作成手順を詳しく説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

ここは、質問サイトであり、 プログラム作成サイトではありません。 プログラムを作る際、何かわからないことを質問するなら ここで良いですが、丸投げは受け付けられません。 それに、これは「宿題」でしょ? 学校の先生に聞いてください。

tx9992
質問者

お礼

なんとか出来ました.これからは丸投げしないようにします

tx9992
質問者

補足

すいません

その他の回答 (1)

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.2

a.csv に書いてある数値を読むことは出来るのか?

tx9992
質問者

お礼

#include<stdio.h> #include<stdlib.h> #include <string.h> #include<limits.h> #define M 1000000 #define N 40 // int main(void){ int i=0; int zero=0; int a=0; int b=0; int let; float data[M]; //データの値 FILE *fp1; //読み込みファイル FILE *fp2; //出力ファイル //読み込みファイルをオープン fp1 = fopen("a.csv","r"); if(fp1 == NULL){ printf("ファイルをオープンできませんでした.\n"); return 0; } /*ファイル読み込み************************************************/ while(( let = fscanf( fp1 , "%f" , &data[i] )) != EOF ) { i++; } fclose(fp1); /**************************************************************/ //出力ファイルをオープン fp2 = fopen("b.txt","w"); if(fp2 == NULL){ printf("ファイルをオープンできませんでした.\n"); return 0; } for(i=0;i<M;i++){ if(data[i]==100 && data[i+1]==100){//100が2個連続で出てきた場合 a = 1; b = 0; zero = 0; i = i + 2; } else if(data[i]==0 && data[i+1]==0){ zero++; } else if(data[i]==0 && data[i]!=100){ zero++; b++; fprintf(fp2,"%d-%d,%d",a,b,zero); fprintf(fp2,"\n"); } } } のプログラムで, a.csv 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0.27 0.41 0.53 0.67 0.81 0.94 1.08 1.2 1.34 1.47 1.61 1.73 1.88 2 2.14 2.27 2.41 2.53 2.67 2.81 2.94 3.08 3.2 3.34 3.47 3.61 3.73 3.88 4 4.14 4.27 4.41 4.53 4.67 0 0 0.14 0.27 0.41 0.53 0.67 0.8 0.94 1.06 1.2 1.33 1.47 1.59 1.74 1.88 2 2.14 2.27 2.41 2.53 2.67 2.8 2.94 3.06 3.2 3.33 3.47 3.59 3.73 3.88 4 4.14 4.27 4.41 4.53 4.67 4.8 0 0 0 0 0 100 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0.27 0.41 0.53 0.67 0.81 0.94 1.08 1.2 1.34 1.47 1.61 1.73 1.88 2 2.14 2.27 2.41 2.53 2.67 2.81 2.94 3.08 3.2 3.34 3.47 3.61 3.73 3.88 4 4.14 4.27 4.41 4.53 4.67 0 0 0.14 0.27 0.41 0.53 0.67 0.8 0.94 1.06 1.2 1.33 1.47 1.59 1.74 1.88 2 2.14 2.27 2.41 2.53 2.67 2.8 2.94 3.06 3.2 3.33 3.47 3.59 3.73 3.88 4 4.14 4.27 4.41 4.53 4.67 4.8 0 0 0 0 0 100 100 実行結果 0-1,24 0-2,26 0-3,31 1-1,996263 1-2,996266 1-3,996316 1-4,996318 1-5,996324 1-6,996326 1-7,996328 1-8,996332 になっちゃいました....

tx9992
質問者

補足

今,自分なりに作っています. もう無理となったら,助けてください. 作ったところまでのソースを貼りますので

関連するQ&A