-5

エラーがどこにあるのか理解できない私のコードは次のとおりです

#include <iostream>
#include<iomanip>
using namespace std;
#define narray 8;// array size;
#define  nbucket 5;// bucket size;
#define interval 10;// bucket range
struct node
{
int data;
struct node *next;
};
void BucketSort(int arr[]);
struct node *InsertionSort(struct Node *list);
void print(int arr[]);
void printBuckets(struct Node *list);
int getBucketIndex(int value);
void BucketSort(int arr[])
{

 int i,j;
 struct node **buckets;
 buckets = (struct node **)malloc(sizeof(struct node*) * nbucket); 
 for (i=0;i<nbucket;i++){
      buckets[i]=NULL;
 }
 for (int i=0;i<narray;i++){
  struct node *current;
  int pos=getBucketIndex(arr[i]);
  current=(struct node *)malloc(sizeof(struct node));
  current->data=arr[i];
  current->next=buckets[pos];
  buckets[pos]=current;


 }

}


int main(){





 return 0;
}

エラーが多い、例えば

Error   1   error C2143: syntax error : missing ')' before ';'  c:\documents and settings\student\my documents\visual studio 2008\projects\bucket_sort\bucket_sort\bucket_sort.cpp  22  bucket_sort
Error   2   error C2059: syntax error : ')' c:\documents and settings\student\my documents\visual studio 2008\projects\bucket_sort\bucket_sort\bucket_sort.cpp  22  bucket_sort
Error   3   error C2146: syntax error : missing ')' before identifier 'i'   c:\documents and settings\student\my documents\visual studio 2008\projects\bucket_sort\bucket_sort\bucket_sort.cpp  23  bucket_sort
Error   4   error C2059: syntax error : ';' c:\documents and settings\student\my documents\visual studio 2008\projects\bucket_sort\bucket_sort\bucket_sort.cpp  23  bucket_sort
Error   5   error C2059: syntax error : ')' c:\documents and settings\student\my documents\visual studio 2008\projects\bucket_sort\bucket_sort\bucket_sort.cpp  23  bucket_sort
Error   6   error C2143: syntax error : missing ';' before '{'  c:\documents and settings\student\my documents\visual studio 2008\projects\bucket_sort\bucket_sort\bucket_sort.cpp  23  bucket_sort
Error   7   error C2146: syntax error : missing ')' before identifier 'i'   c:\documents and settings\student\my documents\visual studio 2008\projects\bucket_sort\bucket_sort\bucket_sort.cpp  26  bucket_sort
Error   8   error C2059: syntax error : ';' c:\documents and settings\student\my documents\visual studio 2008\projects\bucket_sort\bucket_sort\bucket_sort.cpp  26  bucket_sort
Error   9   error C2059: syntax error : ')' c:\documents and settings\student\my documents\visual studio 2008\projects\bucket_sort\bucket_sort\bucket_sort.cpp  26  bucket_sort
Error   10  error C2143: syntax error : missing ';' before '{'  c:\documents and settings\student\my documents\visual studio 2008\projects\bucket_sort\bucket_sort\bucket_sort.cpp  26  bucket_sort
4

2 に答える 2

5

;from#define nbucket 5;とその他の定義を削除します。

現時点では、22 行目はプリプロセッサによって展開され、明らかに無効になります。

buckets = (struct node **)malloc(sizeof(struct node*) * 5;);
//                                                      ^^
于 2012-03-06T10:56:44.013 に答える
0

#define行はコンパイラの一部ではなく、コンパイラの前に実行されるプリプロセッサの一部です。プリプロセッサによって処理される行は、セミコロンで終了しないでください。

たとえば、次の行を見てください。

#define narray 8;// array size;

という名前のマクロが作成されnarrayます。プリプロセッサが実行されると、 のすべてのインスタンスがnarray置換テキスト (この場合は ) に置き換えられます8;。ご覧のとおり8;、式の内部にセミコロンを追加すると、セミコロンが追加されません。

于 2012-03-06T10:59:49.007 に答える