• ベストアンサー

最小・最大・平均

10個の数字の内、最小・最大・平均を求めるプログラムを教えてください。 for(int i=0; i<NUM_ELEMENTS; i++) これを文章の中に書いたのですが、 0からはじまるってことですか? ifの文ですよね?

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

  • ベストアンサー
  • wolv
  • ベストアンサー率37% (376/1001)
回答No.2

配列a[]に値が入っているとしたら, float max(float *a){ int i; float x; x=a[0]; for(i=1;i<10;i++){ if(x<a[i])x=a[i]; } return x; } float min(float *a){ int i; float x; x=a[0]; for(i=1;i<10;i++){ if(x>a[i])x=a[i]; } return x; } float max(float *a){ int i; float x; x=0; for(i=0;i<10;i++){ x+=a[i]; } return x/10; } こんな感じで. 質問文の1行めは意味がわかる. 2行目以後は,意味はなんとなくわかるけど,いいたいことはわからなーい.この回答で足りなければ詳しく補足してください. あ,動作確認はしてません. main関数も作ってないし.

その他の回答 (1)

  • itohh
  • ベストアンサー率45% (210/459)
回答No.1

こんにちは。itohhといいます。 参考書や教科書をもう一度確認してみては如何ですか? それから、はじめは動かしながら憶えたほうが良いですよ。

関連するQ&A

  • 最大値と最小値を表示したいのですが・・・

    double numに入っている数字から最大値と最小値を求めたいのですが、このままだと両方とも1.000になってしまうんです・・・ どうやったらちゃんと最大値と最小値が表示されるのでしょうか?? 初心者なものでスイマセンが教えてください!! #include<stdio.h> int main(void) { int i,j; double num[]={4.5,3.1,7.0,9.2,1.0,5.7,9.3,2.3,0.3,1.0}; double max,min; for(i=0; i<10; i++) { for(j=0; j<10; j++) { if(num[i]>num[j]) max=num[i]; } } for(i=0; i<10; i++) { for(j=0; j<10; j++) { if(num[i]<num[j]) min=num[i]; } } printf("最大値は%fです。",max); printf("最小値は%fです。",min); return 0; }

  • 配列で最大・最小値を求める

    import java.io.*; class Prog10_2 { public static void main(String args[])throws IOException { System.out.println("10個の整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num[] = new int[10]; for(int i=0; i<num.length; i++){ String str = br.readLine(); int tmp = Integer.parseInt(str); num[i] = tmp; } int max = 0; int min = 0; for(int i=0; i<num.length; i++){ if(max < num[i]){ max = num[i]; } if(min > num[i]){ min = num[i]; } } System.out.println("最大値は"+max+"で、最小値は"+min+"です。"); } }   というコマンドを実行すると、最大値はちゃんと表示されるのですが、 最小値はいつも"0"しか表示されません。どこを修正すればいいのでしょうか? どなたか分かる方いらっしゃいましたら、よろしくお願いします。

    • ベストアンサー
    • Java
  • 平均、最大、最小値の求め

    データーを20個入力して平均値、最小値、最大値を求めるという問題を解こうとしたのですが、どうも分からないので教えていただけないでしょうか? 友達と二人で取り組んでプログラムを作成したのですがエラーが出たりして成功しませんでした。 (1)算術型関数heikin、saidai、saishoに分けて作成せよ #include<stdlib.h> #include<stdio.h> #define N (20) int main(void){ double Saidai(double data[], int N){ int i; double saidai; saidai = data[0]; for (i=1; i<N; i=i+1){ if(data[i] > saidai){ saidai = data[i]; }else } double Saisho(double data[], int N){ int i; double saisho; saisho = data[0]; for (i=1; i<N; i=i+1){ if(data[i] < saisho){ saisho = data[i]; }else } double Heikin(double data[], int Ninzu){ int i; double heikin; double goukei; goukei = 0; for (i=0; i<Ninzu; i=i+1){ goukei = goukei+data[i]; } heikin = goukei / ((double)Ninzu); fprintf(stdout,"saidai=%lf\n",saidai); fprintf(stdout,"saisho=%lf\n",saisho); fprintf(stdout,"heikin=%lf\n",heikin); return(EXIT_SUCCESS); } エラー E2293 ) が必要(関数 main ) エラー E2139 宣言に ; がない(関数 main ) エラー E2134 複合文に } がない(関数 main ) 警告 W8070 関数は値を返すべき(関数 main ) (2)手続き型関数を用いて、平均値、最大値、最小値を一括に処理するプログラムを作成せよ こちらに関してはお互い手も出ませんでした。 乱文で分かりずらいと思うかも知れませんが、分かる方がいましたら教えていただけないでしょうか? よろしくお願いします。

  • 入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小

    入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小値のプログラムを下記に作成してみたら最小値が0になりました。そして、もう一つ繰り返し文を作ってみたら、最大値・最小値がうまく表示されました。この違いはどうしてですか?教えてください。 import java.io.*; class Hairetu1 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("データはいくつですか?"); String str = br.readLine(); int num = Integer.parseInt(str); int a[]=new int[num]; int i; int max=0; int min=a[0]; for(i=0; i<a.length; i++){ System.out.print((i+1)+"番目は?"); str = br.readLine(); int tmp = Integer.parseInt(str); a[i] = tmp; if(max<tmp){ max=tmp; } if(min>tmp){ min=tmp; } } System.out.println("入力した値は"+test.length); System.out.println("最大は"+max); System.out.println("最小は"+min); } }

    • ベストアンサー
    • Java
  • 配列から最大値・最小値

    int[ ] ten = {10,20,30,40,50} 例えばこの初期化された配列の中から最大値と最小値を表示させるプログラムを作りたい場合はどのようにすればよいのでしょう? public class aaa {  public static void main(String[ ] args){   int[ ] ten = {10,20,30,40,50};   int 最大値 = ten[0];    for (int i = 0; i< ten.length;i++){ if (最大値 < ten[i]){ 最大値 = ten[i]; } } System.out.println("最大値は" + 最大値 + "です。"); } } これで最大値だけは表示させられるのですが、ここから最小値も表示させるにはどのように加えてけばいいか教えてください。お願い致します。

  • 最大値と最小値の求め方

    以下はコマンドライン引数で任意の数の整数を受け取って、合計・平均・最大・最小を求めようとしたソースです。 しかし、実行したら最大値と最小値が正しく出ませんでした。 if文が間違っているのかもしれないと思ったのですが、はっきりと『ここが間違っている』という場所が分かりません。 どうかご指摘お願いします。 class Choco { public static void main (String[] args) { int i; int sum = 0; int max; int min; for ( i=0; i<args.length; i++) sum += Integer.parseInt(args[i]); double ave = sum/args.length; max = args.length; min = args.length; if (args.length>max){ max = args.length; } if (args.length<min){ min = args.length; } System.out.println("合計は" + sum + "です。"); System.out.println("平均は" + ave + "です。"); System.out.println("最大値は" + max + "です。"); System.out.println("最小値は" + min + "です。"); } }

    • ベストアンサー
    • Java
  • 最大値を求める

    3つの整数を入力して、最大値を求めるプログラムを作りたいのですが、整数を入力するところまでは うまくいくのですが、結果が、255、と出てしまいます。どこがおかしいのかが解かりません。 どなたか教えていただけませんか? 宜しくお願いします。 #include <stdio.h> int main(void) { int num[3]; int max, i, j; puts("三つの整数を入力してください"); for(i = 0; i < 3; ++i) { printf("整数%d:", (i + 1)); scanf("%d", &num[i]); } max = num[0]; for(j = 0; j < 3; ++j) { if(max < num[j]) { max = num[j]; } } printf("最大値は%dです。\n", max); return 0; }

  • C言語 最大値と最小値を求めて表示するプログラム

    はじめまして。 C言語を学習中です。 下記の問題演習の解答として記載されているプログラムがどうしても理解できません。 特にプログラムの最後の方のwhile文で最大値と最小値の判定をしているのかと思いますが、どのような計算をして判定しているのでしょうか。 while (array[i] != -1) { if (array[i] > *max) *max = array[i]; if (array[i] < *min) *min = array[i]; i++; 具体的に教えてください。 よろしくお願い致します。 ●問題 0~100の範囲で入力された複数の数値の中から、 最大値と最小値を求めて表示するプログラムを作成せよ。 -1が入力された場合は入力の終わりと判定する。 ただし、最大値と最小値はmain関数以外の一つの関数の中で求める。 また、入力された数値を記憶する配列の要素数は10とし、 それ以上入力された場合はエラーが起きても仕方ないこととする。 ヒント:配列の中に -1 があればデータの終わりだと判断できる。 ヒント:最小値を探すには、最大値を記憶した変数との比較を繰り返せば良い。 ●解答 #include <stdio.h> void maxmin(int array[],int *max,int *min); int main(void) { int i = 0,array[10],max,min; do { printf("%d 番目の数:",i + 1); scanf("%d",&array[i]); i++; } while (array[i - 1] != -1); maxmin(array,&max,&min); printf("最大値 %d : 最小値 %d\n",max,min); return 0; } void maxmin(int array[],int *max,int *min) { int i = 0; *max = 0; *min = 100; while (array[i] != -1) { if (array[i] > *max) *max = array[i]; if (array[i] < *min) *min = array[i]; i++; } }

  • int num[10]という配列に、適当な整数が入っています。

    int num[10]という配列に、適当な整数が入っています。 この中から、数字が大きいものを上から3つ取り出して出力するプログラムを書きたいのですが、どうしたら良いでしょうか? 簡単なIF文で最大や最小を取り出すことは出来るのですが、上から3つというのが分かりません。 以前作ったバブルソートのプログラムを使って取り出せたのですが、もう少し簡単にできるような気がするのです。 ヒントなど、教えて頂けませんか?

  • C言語:配列の最大値

    こんにちは。 プログラミングの講義の課題で、 1.100未満の整数20個からなる配列を作成する 2.for文を使って20個の整数の中で最大値を求める 3.その結果を出力する というC言語の課題が出されました。完成はしたのですが、何度実行してもビルドエラーが発生して正常に作動しません。どうすれば正常に作動しますか? #include <stdio.h> int main(void){ int i; int max=0; int num[20] = {4,83,71,90,7,33,62,51,98,21,18,20,75,49,69,14,80,22,8,50}; for( i=0 ; i < 20 ; i++ ) { if (num[i] > max) max = num[i]; } printf("%d,",max); return (0); }