ページ 11

error C2047が消えません

Posted: 2014年11月22日(土) 17:15
by ヨモギよしあき
c言語で7*7の升目を移動するプログラムを作っています。
メモ帳に書き込んで、visual studio 2010 コマンドプロンプトでコンパイルしています。
68行目で「error C2047: 'default' が正しくありません。」と出ます。

http://msdn.microsoft.com/ja-jp/library ... 80%29.aspx
にある
default キーワードは switch ステートメントの中だけで使用できます。
等も参考にしましたが、全く解決しません

学校で習った関数を使い復讐替わりでやっているので全くの初心者です。



コード:

 
#include<stdio.h>
#include<stdlib.h>

int main(void){

 int zahyo,map,koudou;

 zahyo=0;
 koudou=0;

 printf("操作方法\n");
 printf(" 8     ↑      9  \n");
 printf("426  ←↓→  終了\n");

 while(koudou<9){
   map=0;
  
   while(map<49){
     if(map==zahyo){
        if(map%7==6)
          printf("●\n");
        else
          printf("●");
     }else{
        if(map%7==6)
          printf("□\n");
        else
          printf("□");
     }
     
     map++;
   }
   
 
   while(2<3){
     printf("どっちに行きますか\n");
   
     scanf("%d",&koudou);
  
     swich(koudou);{
       case2:
         if(zahyo<7)
           break;
         else
           zahyo=zahyo-7;
           break;
       case4:
         if(zahyo%7==0)
           break;
         else
           zahyo=zahyo-1;
           break;
       case6:
         if(zahyo%7==6)
           break;
         else
           zahyo=zahyo+1;
           break;
       case8:
         if(zahyo>41)
           break;
         else
           zahyo=zahyo+7;
           break;
       case9:
         break;
       default:
         printf("もう一度入力\n");
     }
   }
 }

 printf("終了します");
 exit(0);



}

Re: error C2047が消えません

Posted: 2014年11月22日(土) 17:25
by YuO
41行目,)と{の間に;が含まれています。

Re: error C2047が消えません

Posted: 2014年11月22日(土) 17:36
by Tatu
1.switchがswichになっています。
2.switch()の後ろに;はつきません。
3.case 2:のようにcaseと数値の間を空けてください。

本やサイトなどでC言語の文法を学ぶことをおすすめします。

Re: error C2047が消えません

Posted: 2014年11月22日(土) 17:38
by ヨモギよしあき
返信ありがとうございます
;を抜いたところ


masume.c
masume.c(40) : error C2143: 構文エラー : ';' が '{' の前にありません。
masume.c(67) : error C2047: 'default' が正しくありません。


と出ます
自分でも意味が分からず、とりあえずエラー出たから;を付けてみました

Re: error C2047が消えません

Posted: 2014年11月22日(土) 17:45
by ヨモギよしあき
解決しました
ありがとうございました
原因は「swich」でした
今度からは、きちんとスペルも注意します
caseの後にスペースを入れなかったのは「swich」の状態の時に、
コンパイルして、全てのcaseに対しエラーが出たため、スペースを外してみたところ、エラーが出なくなったためです。
独習cあたりでも買い、もう少し勉強します。