2013-03-18 3 views
-2

어떻게 계산과 배열에 입력 된 숫자를 넣어 가겠어요?쓰기 출력 수는 배열에

int sum_even (int p1, int p3, int p5, int p7, int p9, int p11){ 
even_total = array_1[1] + array_1[3] + array_1[5] + array_1[7] + array_1[9] + array_1[11]; 
printf("The sum of the even numbers: %d\n", even_total); 
return; 
} 

int sum_odd (int p2, int p4, int p6, int p8, int p10, int p12){ 
odd_total = array_1[0] + array_1[2] + array_1[4] + array_1[6] + array_1[8] + array_1[10] + array_1[12]; 
printf("The sum of the odd numbers: %d\n", odd_total); 
return; 
} 

int total (int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10, p11, p12){ 
total_all = odd_total + even_total; 
printf("The total of the numbers is: %d\n", total_all); 
return; 
} 

지금 짝수와 홀수 (total_all)의 총 그래서 array_2 [1] 1 array_2 [2 내가 그들을 분할 얼마나 (18)라고 : 예를 들어 나는 기능이있는 경우 ]는 8입니까?

+0

짝수 및 홀수의 합계는'18'이다. ** 어떻게'array_1'과'array_2'의 합이 될 수있다'1' 및'각각 8'? ** jrd1 @ – jrd1

+0

은 아마 1 8로 (18)의 숫자를 분할하고 싶어? – Patashu

+0

@Patashu, 나도 몰라! – jrd1

답변

1

이제 짝수와 홀수의 합계가 18이라고합시다. 어떻게 array_2 [1]이 1이고 array_2 [2]가 8이되도록 분할합니까?

array_2[1] = total_all/10; 
array_2[2] = total_all % 10; 

그러나 당신은 아마

array_2[0] = total_all/10; 
array_2[1] = total_all % 10; 

을 원하는 그리고 왜 당신이 어쨌든하고 싶지 않아도 그 C 배열은 0 색인 조심?

홀수 값을 합산하고 짝수 값을 합산하고, 짝수 값을 합산하여 홀수 합계로 호출하고, 사용하지 않는 매개 변수를 제공하고, 선언하는 등의 다른 많은 문제가 코드에 있습니다. 기능은 ... int 있지만 값을 반환 반환

편집 : 당신이 total_all의 세 가지 하위의 자리를 원하는 경우

, 당신은이 (배열의 순서를 반대로) 수행 할 수 있습니다

array_2[0] = total_all % 10; // 1's place 
array_2[1] = (total_all/10) % 10; // 10's place 
array_2[2] = (total_all/100) % 10; // 100's place 

당신이 n 자리를 원하는 경우에, 당신은이 작업을 수행 할 수 있습니다

int temp_tot = total_all; 
for (int i = 0; i < n; i++) 
{ 
    array_2[i] = temp_tot % 10; 
    temp_tot /= 10; 
} 

시도를 코드를 이해하기 위해, 그냥 복사하거나 나중에 붙어거야 없습니다.

+0

학교 프로젝트의 일부입니다. 합계의 마지막 숫자가 0이 아니면 10을 빼야합니다. 일부 바코드 또는 UPC 코드 용입니다. 하지만 때로는 3 자리 숫자가있을 수 있습니다. 나는 이것이 108 일 수 있다고 생각한다. 배열 2는 어떻게 할 것인가? [2]? – Aaron

+0

다시 한번 감사드립니다. 정말로 도움이됩니다. – Aaron

2

당신이 문자로 그 자리에 정수 값을 분할 정수에 itoa를 사용하여 시도 할 가정.

http://www.cplusplus.com/reference/cstdlib/itoa/

"숯 * itoa는 (int 값 인 char * str INT베이스) 지정된 염기를 사용하여 널 종료 문자열로 정수 값으로 변환하고, 배열의 결과를 저장 STR 주어진 매개 변수. "

+0

고마워요. 그걸 살펴보고 사용해보십시오. – Aaron

+0

@JimBalter 부주의하게해서 죄송합니다. – prehistoricpenguin

0
#include <stdio.h> 
#include <math.h> 

int nSplit(int a[], int n){ 
    int p, d, i; 
    p = (int)log10((double)n);// n > 0 

    d = n; 
    for(i=p;i>=0;--i){ 
     a[i] = d % 10; 
     d /= 10; 
    } 
    return p+1; 
} 

int main(void){ 
    int array[16] ={0}; 
    int len; 
    len=nSplit(array, 18); 
    { //test print 
     int i; 
     for(i=0;i<len;++i) 
      printf("%d\n", array[i]); 
    } 

    return 0; 
}