>  기사  >  컴퓨터 튜토리얼  >  C 언어로 정수의 자릿수의 합을 계산하는 프로그램을 작성하세요.

C 언어로 정수의 자릿수의 합을 계산하는 프로그램을 작성하세요.

王林
王林앞으로
2024-01-16 19:57:151715검색

C 언어로 정수의 자릿수의 합을 계산하는 프로그램을 작성하세요.

C 언어 배열 프로그래밍 질문: 정수의 숫자를 합하는 프로그램을 작성하세요

이 질문의 핵심은 숫자를 분리하는 것입니다. 예를 들어 119를 사용하면 결과는 1+1+9=11이 됩니다. 이렇게 하면 (1) 119%10을 사용하면 119를 10으로 나눈 나머지가 9가 되겠죠? 당신이 똑똑하다면 지금쯤 9가 분리되었다는 것을 발견했을 것입니다. (2) 그러면 119/10의 결과는 정수, 즉 11이 될 수 있습니다. 11을 10으로 나눈 나머지는 1이겠죠? 1이 또 분리된 건가요? (3) 결국 11/10의 결과는 1이 되고, 백의 자리도 분리가 됩니다. (4) 결국은 더하기만 하면 됩니다.

분리의 종료조건은 나눗셈 결과가 10보다 작은 경우입니다.

분리 과정에서 배열을 사용하여 분리된 숫자를 저장할 수 있습니다.

구체적인 코드는 다음과 같습니다.

/*방법 1은 재귀적 방법입니다. 이 방법이 더 간단하고 이해하기 가장 좋은 것 같습니다.*/

#포함

int 표시(int num)

{

if(num

return num;/*재귀 종료*/

그밖에

반환 숫자%10+표시(숫자/10);

}

void main()

{

int num,sum;

printf("정수를 입력하세요:");

scanf("%d",&num);

sum=표시(숫자);

printf("각 숫자의 합 결과: %dn",sum);

}

/*방법 2는 배열을 사용하여 수행됩니다. 방법이 너무 복잡할 수 있습니다. 좋은 방법이 있으면 공유해 주세요.*/

#포함

void main()

{

int 값[10];

int 숫자;

printf("정수를 입력하세요:");

scanf("%d",&num);

동안(num=10000)

{

printf("이 코드는 현재 10000 이하의 4자리 숫자 계산만 지원하며 입력된 정수가 유효하지 않습니다. 다시 입력하세요:");

scanf("%d",&num);

}

if(숫자>=0&숫자 printf("결과는: %dn",num);

그렇지 않으면(숫자>=10&숫자 {

값[0]=num%10;

값[1]=숫자/10;

printf("결과는: %dn", value[0]+value[1]);

}

그렇지 않으면(숫자>=100&숫자 {

value[0]=num%10; /*한 자리 숫자로 구분됨*/

value[1]=num/10; /*분리할 새 숫자 가져오기*/

value[2]=value[1]%10; /*별도의 10자리*/

value[3]=value[1]/10; /*백 자리 구하기*/

printf("결과는: %dn", value[0]+value[2]+value[3]);

}

그밖에

{

value[0]=num%10; /*한 자리 숫자로 구분됨*/

value[1]=num/10; /*분리할 새 숫자 가져오기*/

value[2]=value[1]%10; /*별도의 10자리*/

value[3]=value[1]/10; /*분리할 새 숫자 가져오기*/

value[4]=value[3]%10; /*백 자리 구하기*/

value[5]=value[3]/10; /*천 단위로 숫자 가져오기*/

printf("결과는: %dn", value[0]+value[2]+value[4]+value[5]);

}

}

C 언어 배열에 관한 질문은 C 전문가가 도와드릴 수 있습니다

#포함

메인()

{ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; //10개 요소의 배열이 정의되고 각 요소는 int 유형입니다. p 포인터가 정의되었습니다.

p=a; //p 포인터는 배열 a를 가리킵니다

printf(“%xn”,p); //출력에는 p의 주소가 16진수로 표시됩니다.

printf (“%xn”,p+9); //p+9는 주소를 9 int 형식 거리만큼 이동한 다음 16진수 표시로 변경하는 것을 의미합니다.

}

정말로 주소를 출력하고 싶다면 %p 형식을 사용하면 됩니다. 기본값은 16진수입니다. 효과는 %x와 동일하지만 일부 연산이 생략됩니다.

int 유형의 변수가 2바이트를 차지하면

첫 번째 printf 문의 출력은 194이고, 두 번째 printf 문의 출력 결과는

이 질문은 첫 번째 요소부터 마지막 ​​요소까지 몇 바이트를 차지하는지 묻는 의미입니다

0x194 +2* 9=

직접 계산해 보세요. 변환하기에는 너무 게으른데요.

194는 배열의 첫 번째 주소를 16진수로 나타냅니다. Int형은 2바이트를 차지하므로 9개 요소를 이동하는 거리가 2*9바이트가 되어 주소가 표시됩니다.

이것은 메모리에 있는 유형의 표현 형식에 깊이 들어가 있습니다. +1은 요소 유형을 이동하는 거리를 의미한다는 점을 기억하세요.

배열에 관한 몇 가지 간단한 C 언어 프로그래밍 질문입니다. 감사합니다!

첫 번째 질문:

#include "stdio.h"

void main()

{int a[10];

int i,max;

for(i=0;i scanf("%d,",&a[i]);

max=a[0];

for(i=1;i {

if(최대

max=a[i];

}

printf("최대값: %d",max);

}

두 번째 질문:

#include "stdio.h"

void main()

{

int i,a[10];

long int sum; /*sum은 총 점수입니다*/

부동 평균; /*평균*/

for(i=0;i {

printf("%d 학생의 점수를 입력하세요:", (i+1));

scanf("%d",a[i]);

printf("n");

}

for(i=0;i sum=sum+a[i];

평균=합계/10.0;

printf("학생 10명의 평균 점수는: %f", 평균);

}

질문 3:

#include "stdio.h"

void main()

{

int a[10]={1,2,3,4,5,6,7,8,9,10};

int b[10]={2,4,6,8,10,12,14,16,18,20};

int c[10];

for(i=0;i

c[i]=a[i]+b[i];

for(i=0;i

printf("%d,",c[i]);

}

질문 4:

#include "stdio.h"

{

int i,a[100];

int cx;

for(i=1;i

{

a[i]=i+2;

}

scanf("조회하려는 값을 입력하세요: %d",cx);

for(i=0;i

if(cx==a[i])

{

printf("%d번째 숫자는 쿼리하려는 값입니다!");

휴식;

}

그밖에

printf("입력한 값이 이 배열에 없습니다.")

}

위 내용은 C 언어로 정수의 자릿수의 합을 계산하는 프로그램을 작성하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 docexcel.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제