2016-01-04 70 views
0

你好,這是我的職責,請幫助我知道是什麼問題:計劃在C停止無理由

#include <stdlib.h> 
#include <stdio.h> 
#include <time.h> 
#define LENGTH 10 

void searchingFunc(int arr[],int number,int specialNumber); 
void placesOfNum(int arr[],int number,int specialNumber); 
int evenPlaces(int arr[],int number,int specialNumber); 

int main() 
{ 
    int len =10,someNum =0,i=0,ans=0; 
    int someArr[LENGTH]={0}; 
    for(i=0;i<len;i++) 
    { 
     printf("enter a number: \n"); 
     scanf("%d",&someArr[i]); 
    } 
    printf("now, enter the other number\n"); 
    scanf("%d",&someNum); 
    searchingFunc(someArr,len,someNum); 
    placesOfNum(someArr,len,someNum); 
    ans = evenPlaces(someArr,len,someNum); 
    printf("%d",ans); 
    return 0; 
} 

/** 
this function 
input: 
output: 
*/ 
void searchingFunc(int arr[],int number,int specialNumber) 
{ 
    int i = 0; 
    while ((i < number) && (specialNumber != arr[i])) 
    { 
     i++; 
    } 

    if (i < number) 
    { 
     printf("the number found\n"); 
    } 
    else 
    { 
     printf("the Number not found\n"); 
    } 
} 

/** 
this function 
input: 
output: 
*/ 
void placesOfNum(int arr[],int number,int specialNumber) 
{ 
    int i = 0; 
    for(i=0;i<number;i++) 
    { 
     if (specialNumber== arr[i]) 
     { 
      printf("in the %d\n",i+1); 
     } 
    } 

} 


/** 
this function 
input: 
output: 
*/ 
int evenPlaces(int arr[],int number,int specialNumber) 
{ 
    int i=1,sum=0; 
    for(i=1;i<=number;i+2) //because the counting start from 0 
    { 
     sum = sum + arr[i]; 
    } 
    return sum; 

} 

功能的工作,但到了最後,它停止工作,不打印的最後數字 - 偶數的總和。請幫助我,謝謝

+0

請[編輯]您發佈的內容只包括代碼的問題的一部分。看看如何寫一個[mcve]。還包括示例輸出。 – Arc676

+0

嘗試用'printf(「%d \ n」,ans)替換'printf(「%d」,ans);''。 – Badministrator

+0

哪個功能起作用(我可以看到至少3個),你怎麼知道的? – doctorlove

回答

0

evenPlaces功能,你沒有更新ifor循環。您還必須將i<=number更改爲i < number

變化

for(i=1;i<=number;i+2) 

for(i = 1; i < number; i = i+2) {} 

Working Code

+0

[ideone](http://ideone.com))只能用於顯示代碼,而不能像您所說的那樣顯示工作代碼的DEMO。在int evenPlaces(int arr [],int number,int specialNumber)中沒有'int specialNumber'的用法,但ideone不檢查。主要內部有一個叫'ans = evenPlaces(someArr,len,someNum);' – Michi

+0

@Michi;它會通過從'evenPlaces'中刪除這個參數來解決問題嗎?我剛纔談到了程序不工作的原因。 – haccks

+0

在'main'內部有一個調用,這意味着它應該在該函數內部使用,而不是刪除。任何方式我的觀點是關於[Ideone](http://ideone.com)而不是代碼。 OP的功能也是錯誤的。我從來沒有說過你的答案不會幫助OP的問題:) – Michi