C言語

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

C言語

#1

投稿記事 by ぱむぱむ » 2ヶ月前

コード:

#include <stdio.h>
#include <stdlib.h>
#define ARRAYSIZE 10000


int main(void)
{
    FILE *fp ;
    int month, day, hour ;
    double data ;
    double kion[ARRAYSIZE] ;
    int size ; 
    int i ;

    
    if ((fp = fopen("気温のファイルが入る", "r")) == NULL) {
	fprintf(stderr, "Error: File Open\n") ;
	exit(1) ;
    }

    size = 0 ; 
   
    while (fscanf(fp, "%d,%d,%d,%lf", &month, &day, &hour, &data) != EOF) {
	
	kion[size] = data ; 
	size++;
    }

    fclose(fp) ;

  
    for (i = 0; i < size; i++) {
	printf("kion[%d]: %.1f\n", i, kion[i]) ;
  printf("平均気温: %.1lf\n",kion_heikin(kion, arraysize));
  printf("最高気温: %.1lf\n",kion_max(kion, arraysize));
  printf("最低気温: %.1lf\n",kion_min(kion, arraysize));
    }


    return 0 ;
}

double kion_heikin (double array[], int size)
{
  int i;
  double sum = 0.0;

  for(i=0; i<size; i++) {
    sum += array[i];
  }
  return sum / size;
}

double kion_max(double array[], int size)
{
  int i;
  double max = array[0];

  for(i=1; i<size; i++) {
    if(max < array[i]) {
      max = array[i];
    }
  }
  return max;
}

double kion_min(double array[], int size)
{
  int i;
  double min = array[0];

  for(i=1; i<size; i++) {
    if(min > array[i]) {
      min = array[i];
    }
  }
  return min;
}
一日の平均気温、最高気温、最低気温を出力したいのですが値を返してからの出力のさせ方がわかりません。
コンパイルすると
ps.c:38:34: warning: implicit declaration of function 'kion_heikin' is invalid
in C99 [-Wimplicit-function-declaration]
printf("平均気温: %.1lf\n",kion_heikin(kion, arraysize));
^
ps.c:38:52: error: use of undeclared identifier 'arraysize'
printf("平均気温: %.1lf\n",kion_heikin(kion, arraysize));
^
ps.c:39:34: warning: implicit declaration of function 'kion_max' is invalid in
C99 [-Wimplicit-function-declaration]
printf("最高気温: %.1lf\n",kion_max(kion, arraysize));
^
ps.c:39:49: error: use of undeclared identifier 'arraysize'
printf("最高気温: %.1lf\n",kion_max(kion, arraysize));
^
ps.c:40:34: warning: implicit declaration of function 'kion_min' is invalid in
C99 [-Wimplicit-function-declaration]
printf("最低気温: %.1lf\n",kion_min(kion, arraysize));
^
ps.c:40:49: error: use of undeclared identifier 'arraysize'
printf("最低気温: %.1lf\n",kion_min(kion, arraysize));
^
ps.c:47:8: error: conflicting types for 'kion_heikin'
double kion_heikin (double array[], int size)
^
ps.c:38:34: note: previous implicit declaration is here
printf("平均気温: %.1lf\n",kion_heikin(kion, arraysize));
^
ps.c:58:8: error: conflicting types for 'kion_max'
double kion_max(double array[], int size)
^
ps.c:39:34: note: previous implicit declaration is here
printf("最高気温: %.1lf\n",kion_max(kion, arraysize));
^
ps.c:71:8: error: conflicting types for 'kion_min'
double kion_min(double array[], int size)
^
ps.c:40:34: note: previous implicit declaration is here
printf("最低気温: %.1lf\n",kion_min(kion, arraysize));

Math

Re: C言語

#2

投稿記事 by Math » 2ヶ月前

関数プロトタイプ宣言がないなど
いろいろ間違いがありますよ

例えば下記のようにします。エンバカデロC (ボーランドC BCC55 の後継)使用

コード:

#include <stdio.h>
#include <stdlib.h>
#define ARRAYSIZE 10000

double kion_heikin (double array[], int size);
double kion_max(double array[], int size);
double kion_min(double array[], int size);

int main(void)
{
    FILE *fp ;
    int month, day, hour ;
    double data ;
    double kion[ARRAYSIZE] ;
    int size ; 
    int i ;

    
    // if ((fp = fopen("気温のファイルが入る", "r")) == NULL) {
    if ((fp = fopen("kion.txt", "r")) == NULL) {

	fprintf(stderr, "Error: File Open\n") ;
	exit(1) ;
    }

    size = 0 ; 
   
    while (fscanf(fp, "%d,%d,%d,%lf", &month, &day, &hour, &data) != EOF) {
	
	printf("%d,%d,%d,%f\n", month, day, hour, data); // チェック表示
	kion[size] = data ; 
	size++;
    }

    fclose(fp) ;

  
    for (i = 0; i < size; i++) {
	printf("kion[%d]: %.1f\n", i, kion[i]) ;
    }
//  printf("平均気温: %.1lf\n",kion_heikin(kion, arraysize));
//  printf("最高気温: %.1lf\n",kion_max(kion, arraysize));
//  printf("最低気温: %.1lf\n",kion_min(kion, arraysize));


  printf("平均気温: %.1lf\n",kion_heikin(kion, size));
  printf("最高気温: %.1lf\n",kion_max(kion, size));
  printf("最低気温: %.1lf\n",kion_min(kion, size));

//    }


    return 0 ;
}

double kion_heikin (double array[], int size)
{
  int i;
  double sum = 0.0;

  for(i=0; i<size; i++) {
    sum += array[i];
  }
  return sum / size;
}

double kion_max(double array[], int size)
{
  int i;
  double max = array[0];

  for(i=1; i<size; i++) {
    if(max < array[i]) {
      max = array[i];
    }
  }
  return max;
}

double kion_min(double array[], int size)
{
  int i;
  double min = array[0];

  for(i=1; i<size; i++) {
    if(min > array[i]) {
      min = array[i];
    }
  }
  return min;
}

cxc.bat

コード:

"C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\bcc32c" main.c

dir main.exe

main.exe

pause
実行する。
http://www2.koyoen.birdview.co.jp/~abcx ... -11-a-.PNG

pamu

Re: C言語

#3

投稿記事 by pamu » 2ヶ月前

ありがとうございます

返信

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