プロが教える店舗&オフィスのセキュリティ対策術

以下のプログラムで写真のような結果にしたいのですが、一部式が分かりません。どのように組めばいいか教えてください。また、エラーの修正を何度しても上手くいきませんでした。この2点をお願いします。
#include <stdio.h>

#include <math.h>

int main (void)

{

double x, r;

/*体重x,身長y*/

 

printf ("カルテ番号 身長[cm]BMI¥");

for (x=0.0,x<=90,){

r=x/y^2

printf("%d  %d  %d", カルテ番号 身長[cm]BMI);

}

return 0;

}
ーーーーーーーーーーーーーーーーーーーーーー

エラー

1s0301.c

1s0301.c(9): error C2146: 構文エラー: ';' が、識別子 '(' の前に必要です。

1s0301.c(9): warning C4550: 式は引数リストのない関数として評価します。

1s0301.c(9): error C2065: '(': 定義されていない識別子です。

1s0301.c(9): error C2143: 構文エラー: ';' が '文字列' の前にありません。

1s0301.c(9): error C2146: 構文エラー: ';' が、識別子 ')' の前に必要です。

1s0301.c(9): error C2065: ')': 定義されていない識別子です。

1s0301.c(10): error C2059: 構文エラー: ')'

1s0301.c(14): error C2059: 構文エラー: 'return'

「以下のプログラムで写真のような結果にした」の質問画像

A 回答 (3件)

> 以下のプログラムで写真のような結果にしたい



これだけ、だと仕様が良く分からんのですよ。
出力を以下の写真のようにしたい、ってだけなら例えば

/* ここから */

#include <stdio.h>

int main(void) {
 double table[5][3] = {{171.3, 65.8, 22.42},
           {182.0, 76.3, 23.03},
           {165.0, 55.7, 20.46},
           {155.0, 38.0, 15.82},
           {148.0, 35.5, 16.21}};
 char* txt = "BMI 最%s値者 カルテ番号: %d BMI:%4.2f\n";
 puts("カルテ番号 身長[cm] 体重[kg] BMI");
 for (int i = 0; i < 5; i++) {
  printf("%4d\t%4.1f\t%3.1f\t%4.2f\n", i+1, table[i][0], table[i][1], table[i][2]);
 }
 puts("\nBMI平均値: 19.59");
 printf(txt, "高", 2, table[1][2]);
 printf(txt, "低", 4, table[3][2]);
 return 0;
}

/* ここまで */

と書いちゃえば済んじゃいます。
これでイイんですか?

重要なのは、

「出力はプログラムの中身を規定しない」

と言う事です。
必要なのは「どういうプログラムにすれば良いのか」と言う「仕様」なのです。
    • good
    • 0

>printf ("カルテ番号 身長[cm]BMI¥");



カッコが全角になっています。
まだ、半角だったとしても、最後の円マークでエスケープすると文字列が閉じられません。

>for (x=0.0,x<=90,){
>r=x/y^2

既に指摘あるのでパス。

>printf("%d %d %d", カルテ番号 身長[cm]BMI);

カルテ番号 という名前の変数はありません。そのあともありえない指定になってます。
    • good
    • 0

まず、プログラムの実行エラーではなくコンパイル段階でのエラーだということは理解できていますか?


エラーメッセージにある通り構文エラー(C言語の文法エラー)です。

で、パッと目。。。

for(xx , yy , )と書かれいますが、正しくはfor(xx ; yy ; zz)のはずです。
また r=x/y^2 の右側には ; が必要ですよね。

とりあえず。そんな感じで。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!