10자리 수 입력받기......
비치
//학번 입력하기
{
ULLONG i=0,l;
ULLONG temp=0;
int checking=0;
while(i Student_Number){
checking=0;
temp = ( rand()%9000+1000)*1000000 + ( rand()%9000+1000)*100 + rand()%90+10; for(l=0 ; l = i ; l++)
if( data[l].Student_code == temp){
checking = 1;
break;
} if(checking == 0){
data[i].Student_code = temp;
i++;
}
printf( 학번: %llu, %d번째 입력....\n, data[i-1].Student_code, i+1);
}
printf(학번 입력완료\n);
}ULLONG은 unsigned long long을 정의한거구요
학번입력을 중복없이 입력 받아야 하는 코드인데요
10자리를 입력받기 위해서는 int형으로는 부족하여 unsigned long long으로 하였는데요
rand() 함수가 0~32767까지만 반환하기에 위처럼 각각에 자릿수를 곱하여 학번 10자리를 완성시키려는 건데요
학번으로 원하는 10자리 수가 계속 안나오기에 아래의 프로그램으로 검사 해보았더니..
ULLONG a;
int b,c;
a = ( rand()%900+100) *10000000;
b = (rand()%9000+1000)*1000;
c = rand()%900+100;
printf(%llu %d %d %d , a,b,c,a+b+c);a만 계속 이상한 값이 나옵니다. 아마 오버플로우 되는것같은건 분명한데 unsigned long long은 0 ~ 2^61-1 표현 가능한
매우 큰 정수형인데 왜 오버플로우가 발생하는지...?
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2698012 | 2~9가아닌수 | 아놀드 | 2025-06-13 |
2697980 | for에 gets함수를 넣으니까 왜 반복이 안되죠 ㅜ (2) | 펴라 | 2025-06-12 |
2697952 | 2차배열과 함수문의^^; | VanilLa | 2025-06-12 |
2697924 | 다차원 배열 질문있습니다 | 두동 | 2025-06-12 |
2697893 | 정올 :: 기초다지기 a9007 배열7 (문제가 이상함 -_-) | 흰두루 | 2025-06-12 |
2697862 | Unable......... 지정된 파일을 찾을 수 없습니다!! (1) | Creator | 2025-06-11 |
2697761 | 그러니까여제말은... (2) | 새론 | 2025-06-10 |
2697737 | 정올 문제좀 풀어보신분~ | 레오 | 2025-06-10 |
2697709 | rand함수 질문좀요! (6) | 가막새 | 2025-06-10 |
2697683 | C언어 변수뒤 표시가 이해안되는게 있습니다. | 소미 | 2025-06-10 |
2697660 | 껍데기딜 만들고 난후 어느핫키 누르면 코드검색이라도 뜨고 그다음 무반응 해결좀 (2) | 움찬 | 2025-06-09 |
2697634 | c언어로 감성사전 만들기! (1) | 도란도란 | 2025-06-09 |
2697605 | 이 함수좀... | agine | 2025-06-09 |
2697574 | 배열 기본적인질문 (3) | 민트향 | 2025-06-09 |
2697549 | 배열 초기화 (4) | 나리 | 2025-06-08 |
2697465 | 수다님...^^ (2) | 가론 | 2025-06-08 |
2697432 | 서버 만드는 함수에서 궁금한게있어요~ | 파랑 | 2025-06-07 |
2697401 | 열혈강의 문제오류 (1) | 꿈 | 2025-06-07 |
2697374 | 기초적인 C언어 프로그래밍 입니다. | 얼 | 2025-06-07 |
2697341 | 좌우대칭 문제인데 Q가 입력되면 종료가 되야하는데 되지않습니다 | 무지개 | 2025-06-07 |