#include #define N 8 int main() { int i; int j; int k;
--------------------------------------------------------- │ │ │ │ │ │
--------------------------------------------------------- return 0; }
答:
#define N 8 int main() { int i; int j; int k;
for(i=0;i
for(j=0;j
printf("*"); for(k=0;k
printf("\n"); } return 0; }
2.完成程序,實(shí)現(xiàn)對(duì)數(shù)組的降序排序 #include void sort( ); int main() {
int array[]={45,56,76,234,1,34,23,2,3}; //數(shù)字任意給出 sort( ); return 0;
}
void sort( ) {
--------------------------------------------------------- │ │ │ │ │ │
--------------------------------------------------------- }
答:使用選擇排序法,我為sort函數(shù)多加了兩個(gè)形參,至少第一個(gè)是必須的,否則無法傳入待排序數(shù)組。不知道這樣做是否符合題意。
void sort(int *array,int num) {
int temp;
for(int i=0;i
temp=array; array=array[j]; array[j]=temp; } }
3.費(fèi)波那其數(shù)列,1,1,2,3,5……編寫程序求第十項(xiàng)?梢杂眠f歸,也可以用其他方法,但要說明你選擇的理由。 #include
int Pheponatch(int); int main() {
printf("The 10th is %d",Pheponatch(10)); return 0; }
int Pheponatch(int N) {
-------------------------------- │ │ │ │
-------------------------------- } 答:
使用遞歸,理由是遞歸編程簡(jiǎn)單,代碼容易理解,但缺點(diǎn)是效率不高,而且有深度限制,如果深度太深,則堆棧
會(huì)溢出。
int Pheponatch(int N) {
if (N==3) return 2;
else if (N==2||N==1) return 1; else
return Pheponatch(N-1)+Pheponatch(N-2); }
4.下列程序運(yùn)行時(shí)會(huì)崩潰,請(qǐng)找出錯(cuò)誤并改正,并且說明原因。
#include
TNode* left; TNode* right; int value; }TNode;
TNode* root=NULL; void append(int N);
int main() {
append(63); append(45); append(32); append(77); append(96); append(21);
append(17); // Again, 數(shù)字任意給出 return 0; }
void append(int N) {
TNode* NewNode=(TNode *)malloc(sizeof(TNode)); NewNode->value=N;
NewNode->left=NULL; //新增 NewNode->right=NULL; //新增
if(root==NULL) {
root=NewNode; return; } else {
TNode* temp; temp=root;
while((N>=temp->value && temp->left!=NULL)||(N
while(N>=temp->value && temp->left!=NULL) temp=temp->left;
while(N
if(N>=temp->value) temp->left=NewNode; else
temp->right=NewNode; return; } }
答:因?yàn)樾鹿?jié)點(diǎn)的左右指針沒有賦NULL值,至使下面的while循環(huán)不能正確結(jié)束而導(dǎo)致內(nèi)存越界,最后崩潰(注意結(jié)束條件是temp->left!= NULL或temp->right!=NULL)。
改正就是增加兩條賦值語句,如上文紅色部分字體就是新增的兩條語句。
相關(guān)文章推薦: