該程序應該採用一個文件,比如data.dat,填充一個最多320個字的列表,所有字母都小於或等於29個字符( 30與空字符)並將每個單詞添加到全局數組。然後我想按照字母順序排序該列表。我在自己的文件中的以下功能這樣做sort.cC - 冒泡排序字符串數組,然後應用於unsigned int數組
#include "set.h"
#include "sortAndSearch.h"
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void bubbleSort(char A[][30], int num) {
int i, j;
char temp[30];
for(i = 0; i < num; i++)
for(j = 0; j < num-1; j++)
if(strcmp(A[i], A[i+1]) > 0){
//swap the two array elements
strcpy(temp, A[j]);
strcpy(A[j], A[j+1]);
strcpy(A[j+1], temp);
}
}
我需要一組無符號整數
unsigned int Set[10];
充當名稱數組的索引。因此,每個無符號整數有32位,並且有10個無符號整型,總共320位,每位將引用一個字。我不確定如何處理這部分。
最終目標是創建函數來操作集合。我覺得我可以自己攻擊,如果我可以得到排序和索引,因爲我已經做了類似的事情,但沒有使用字符數組。定義函數的頭文件set.h要使用的內容如下
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
// defining new type(s)
typedef unsigned int Set[10];
// declaring global variable(s)
extern char names[320][30];
extern void setUnion(Set set1, Set set2, Set result);
extern void setIntersection(Set set1, Set set2, Set result);
extern void clearSet(Set set);
extern void add2Set(Set set, int value);
extern void deleteFromSet(Set set, int value);
extern int isMember(Set set, int element);
extern void printSet(Set);
extern int nameIsMember(Set set, char *);
extern void addName2Set(Set set, char *);
extern void deleteNameFromSet(Set set, char *);
而這裏是頭文件sortAndSearch.h
void bubbleSort(char A[][30], int num);
int binarySearch(char A[][30], char *, int, int);
你能總結一下您需要什麼? – 2012-03-23 20:17:30
第一件事,幫助弄清楚爲什麼冒泡排序排序未啓用,然後從首次獲得的話mes [320] [30]到無符號int Set [10] – manalishi 2012-03-23 20:22:21
好吧,我創建了外循環,現在函數可以很好地排序。現在最重要的問題是創建索引。 – manalishi 2012-03-23 20:37:20