質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

解決済

C言語:コンパイルエラー「expected identifier or '('」と出てしまいます。。どうしたら良いでしょうか?

tetsutail_study
tetsutail_study

総合スコア22

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

1回答

0評価

0クリップ

6630閲覧

投稿2021/01/04 08:24

前提・実現したいこと

下のコード(C言語)の16行目のfor文でエラーが出ています。このfor文を消すとコンパイルが通るので、ここがエラーの原因だと思うのですが、理由がわかりません。。原因を教えてください!

発生している問題・エラーメッセージ

keytime.c:16:1: error: expected identifier or '(' for(int i=0;i<30;i++) keys[i].key_num = i; //キーの位置番号設定 ^ 1 error generated.

該当のソースコード

C

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/time.h> #include "conio.h" struct eachkey{ int key_num; //キーの位置番号 double keytimes; //各キー入力時間保存用 int keyweight; //各キーの重み付け保存用 }; struct eachkey keys[30]; char keyplace[30] = {'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l',';','z','x','c','v','b','n','m',',','.','/'}; for(int i=0;i<30;i++) keys[i].key_num = i; //キーの位置番号設定 double getETime(){ struct timeval tv; gettimeofday(&tv, NULL); return tv.tv_sec + (double)tv.tv_usec*1e-6; } /*指定されたキーが押される時間を計測*/ double keytime(char c){ double start, end, time; char getkey; int ec; printf("手をホームポジションにおいて,スペースキーを押してください\n"); while(1){ int space = getch(); if(space == ' ') break; } start = getETime(); printf("「%c」を入力してください>> ", c); while(1){ ec = getch(); if(ec == c) break; } printf("%c\n", ec); end = getETime(); time = end - start; printf("キー入力時間:%lf秒\n", time); return time; } int GetRandom(int min,int max){ return min + (int)(rand()*(max-min+1.0)/(1.0+RAND_MAX)); } /*ランダムにキー入力を受付+時間計測して重み順位付け*/ int main(){ int i, n; for(i=0;i<30;i++) keys[i].keytimes = -1; //keytimes初期化 for(i=0;i<30;i++){ n = GetRandom(0,29); while(keys[n].keytimes!=-1){ //記録されていないキーを探すs n = GetRandom(0,29); } keys[n].keytimes = keytime(keyplace[n]); } for(i=0;i<30;i++) printf("%d : %lf", i, keys[i].keytimes); //for(i=0;i<30;i++) printf("キーの位置=%d : 重み=%d", i, keys[i].keyweight); }

補足情報(FW/ツールのバージョンなど)

MacのVScodeを使用しています。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。