이것은 내가 디코딩 서명 코드는 다음과 같습니다이 코드를 역순으로 처리 하시겠습니까?
#include<stdio.h>
int i;
double q[]={6627601.1454013166};
int main()
{
if(1000.0-i++)
{
main();
}
else
{
puts(q);
}
}
난 당신이 바로 [재귀 외에] 코드에서 무슨 일이 일어나고 있는지 설명해주십시오 수 C에서 초보자입니다 때문에?
내 이름을 인쇄 할 비슷한 프로그램을 만들고 싶다면 번호를 생성하는 절차는 무엇입니까?
#include<stdio.h>
int i;
double q[]={31711421078673377979858439824814601270188287470225555299667257024608266243979287542515985597401536215834733576192.000000};
int main()
{
if(1000.0-i++)
{
main();
}
else
{
puts(q);
}
}
- 왜 두 번째 코드는 8 개 문자의 출력을 제공 하는가 : 코드 1 :
#include<stdio.h> int main() { double a; scanf("%s",&a); printf("%lf\n",a); }
CODE2 나는 다음과 같은 시도? [입력을 7 자까지 입력하면 0.000000으로 출력되고 8보다 많은 경우 8과 동일한 출력이됩니다.]
일부 입력의 경우 13 자릿수를 생성하고 일부는 생성합니다 119 자릿수! # @ # @ ???
어떻게이 이름을 15-20 자리로 줄일 수 있습니까?
특수 번호의 마지막 4 자리는 어떻게 얻을 수 있습니까? [이미 처음 13 자리 숫자를 가지고 있기 때문에] 어떻게해야합니까?
코드는 부동 소수점 유형을 문자열 인 것처럼 사용합니다. 나쁜 일이 발생할 것입니다. '3.14'를 문자열로 부르고 "3.14"를 얻을 수는 없습니다. 문자열을 이중으로 스캔하는 경우 코어 덤프를 요청할 것입니다. – mah
당신은 거기에 가고 싶지 않습니다 .... 아직. 진지하게, 변수 저장, 메모리 레이아웃 및 부동 소수점 표현에 대한 많은 세부 정보를 얻습니다. 초보자로서 언어를 남용하는 방법을 찾는 것보다 좋은 코딩 방법을 배우는 것이 좋습니다. – AShelly
마술 번호의 IEEE 표현을 16 진수로 보면 0x41594844494E4153이됩니다. LSB로 시작하여 각 바이트를 ascii로 가져 가면 SANIDHYA가됩니다. 8 자 한계는 double이 8 바이트라는 사실에 기인합니다. 나는 main에서 재귀가 잘못된 것이라고 생각한다. 재귀가 스택 오버플로 전에 끝나고 이름 뒤에 추가 문자가 없다는 사실은 컴파일러의 특정 구현 세부 사항이며 임의의 시스템에서 실패 할 가능성이 있습니다. – AShelly