다음 처럼하면..
문자열이 들어왔을때는 재입력을
받도록 되는데..
범위지정을 할수 가없네요..
100에서 0사이의 문자가 들어올경우 브레이크시키도록
#include <stdio.h> main() { char a; int i,c; while(1){ scanf("%s",&a); for(i=49;i<=57;i++){ if(a==i) c=1; } c=(int)a; if(c==1) break; } }
#include <stdio.h>
main() { char a; int i,c; while(1){ scanf("%s",&a); for(i=49;i<=57;i++){
if(a==i) c=1; } c=(int)a; if(c==1) break;
} }
죄송한데요 -_-;;
지금 보고계시는 책이 있는지요? 책을 한번 정독하시고 프로그램을 짜보시는게 좋을듯 합니다. 저도 C는 잘 모르지만
코드가 좋지 않습니다.
char a;로 선언한후 scanf("%s",&a) 를 쓰시다니요........ scanf함수 부분만이라도 정확히 보시고 코딩을 하세요 전의 문제도 %d로 문자열을 받아서였던것 같은데요...
또한 위의 코드로는 절대 break가 걸리지 않습니다. 딱 한경우 빼고요 (int)a가 1인 경우요.... if문 바로 위에 c값에 (int)a를 대입하고 그걸 검사하다니요 1값은 SOH로서 -_-;;......... 아무리 보아도 원하는 형태의 프로그램같지 않습니다.
또한 중간에 a값을 받아서 49~ 57사이의 값과 비교하는 것보다는 직접 a값이 49와 57사이에 있는지 두번 비교하는 것이 훨씬 좋은 방법이겠죠? 아마 원하시는 코드는
#include<stdio.h> int main() { char a; while(1) { scanf("%c",&a); if( (a>=49)&&(a<=57) {printf("%c\n",a); return 0;} } }
일것이라 추측이 됩니다만....
C++, 그리고 C++.... 죽어도 C++
혹시 원하시는게 1~100 사이의 숫자를 입력 받는데, 범위 밖의 값이나 문자열이 입력되면 다시 입력값을 받는 코드입니까? 그렇다면 다음과 같은 방식을 추천합니다.
int i; while ( 1 ) { char buf[255]; printf("Input number (1 ~ 100) : "); scanf("%s", buf); if ( sscanf(buf, "%d", &i) == 1 && ( i >= 1 && i <= 100 ) ) { break; } printf("\nError!\n"); }
sscanf 함수를 사용하는게 맘에 안드시면 해당하는 함수를 직접 만드는 방법도 있겠지요. 그러나 저라면 sscanf 함수의 효율성을 믿겠습니다.
감사합니다..
참고로 .. 저위의 .. 브레이크문도..
제기능을.. 수행합니다~~
메일 : nan1004au@gmail.com
감사합니다.. 참고로 .. 저위의 .. 브레이크문도.. 제기능을.. 수행합니다~~
혹시 이 아래의 이 코드에서의 break문이 정상적으로 제 기능을 수행한단 말인가요..? 그럴리가요..?
#include <stdio.h> main() { char a; int i, c; while(1){ scanf("%s",&a); for(i=49;i<=57;i++){ if(a==i) c=1; } c=(int)a; if(c==1) break; } }
1. scanf("%s", &a ); a는.. char이고.. 포인터를 넘겨주긴 했으니 -_-;; 뭐 동작을 할겁니다.. 실제로.. char a라고 한다고 정말 딱 1바이트만.. 할당하는건 아니니..
하지만.. 문장을 좀 길게 넣으면 segment fault 를 만날 수 있을 듯 싶군요...
2. c=(int)a; 이걸 무슨 의미로 사용하셨는지 궁금해지는군요 ;) 설마.. 저렇게 해서.. a에 있는 아스키코드값에 해당되는 값이 숫자로 변환되게 하려는 의도는 아니었길 빕니다..
3. if( c == 1 ) break; 흠 바로 위에서 c = (int) a; 를 하셨으니.. 입력값중 첫번째 value가.. asc코드로 1을 가져야겠군요.. 그건.. 평범한 방법으로는 입력할 수 있는 값이 아닐 듯 합니다 :D
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~ 나 한줄기 바람처럼..
제가 이런말씀 드리면 안되겠지만...
-_-;;; 보고 있으려니 가슴이 아파서요...
C언어 공부 열심히 하세요. T-T
아마도 숫자 입력 외에는 입력을 받지 않도록 하는 프로그램을 작성하시려고 하신듯 하네요... 그리고 최대 100까지 입력을 받도록 하시는 건가요? 2자리 숫자까지?
흐으음... ( - -)a 조금 난감하네요.
ㅠ,.ㅜ 아직 자세히 모르면서 .. 이것 저것 짜볼려고 하니.. 기본부터 꾸준이 쌓아야 겟어요.. 한권의 책을 여러본 보는게 낳을까요? 여러권의 책을 두루 보는게 낳을까요?
C의 기본은 그동안 여러번 언급되었지만
The C Programming Language 2nd edition 한권이면 되구요
이책을 바로 보기 힘드시다면 Teach your self C <- 가장 쉽지 않을까요? A book on C <- 약간 어렵지만 책을 많이 안사도 될듯 합니다.
이 정도면 될듯 합니다.
특히 A book on C는 다양한 연습문제들이 더욱 단련시켜줄 것입니다. 그거 다 보고 액기스로 저 TCPL을 보면 문제가 없습니다
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
죄송한데요 -_-;;지금 보고계시는 책이 있는지요?책을 한번
죄송한데요 -_-;;
지금 보고계시는 책이 있는지요?
책을 한번 정독하시고 프로그램을 짜보시는게 좋을듯 합니다.
저도 C는 잘 모르지만
코드가 좋지 않습니다.
char a;로 선언한후
scanf("%s",&a) 를 쓰시다니요........
scanf함수 부분만이라도 정확히 보시고 코딩을 하세요
전의 문제도 %d로 문자열을 받아서였던것 같은데요...
또한 위의 코드로는 절대 break가 걸리지 않습니다.
딱 한경우 빼고요
(int)a가 1인 경우요....
if문 바로 위에 c값에 (int)a를 대입하고
그걸 검사하다니요 1값은 SOH로서 -_-;;.........
아무리 보아도 원하는 형태의 프로그램같지 않습니다.
또한 중간에 a값을 받아서 49~ 57사이의 값과 비교하는 것보다는
직접 a값이 49와 57사이에 있는지 두번 비교하는 것이 훨씬
좋은 방법이겠죠?
아마 원하시는 코드는
일것이라 추측이 됩니다만....
C++, 그리고 C++....
죽어도 C++
혹시 원하시는게 1~100 사이의 숫자를 입력 받는데, 범위 밖의 값이나
혹시 원하시는게 1~100 사이의 숫자를 입력 받는데, 범위 밖의 값이나 문자열이 입력되면 다시 입력값을 받는 코드입니까? 그렇다면 다음과 같은 방식을 추천합니다.
sscanf 함수를 사용하는게 맘에 안드시면 해당하는 함수를 직접 만드는 방법도 있겠지요. 그러나 저라면 sscanf 함수의 효율성을 믿겠습니다.
감사합니다.. 참고로 .. 저위의 .. 브레이크문도.. 제
감사합니다..
참고로 .. 저위의 .. 브레이크문도..
제기능을.. 수행합니다~~
메일 : nan1004au@gmail.com
[quote="nan1004au"]감사합니다.. 참고로 .. 저위
혹시 이 아래의 이 코드에서의 break문이 정상적으로 제 기능을 수행한단
말인가요..? 그럴리가요..?
1. scanf("%s", &a ); a는.. char이고.. 포인터를 넘겨주긴 했으니 -_-;;
뭐 동작을 할겁니다.. 실제로.. char a라고 한다고 정말 딱 1바이트만..
할당하는건 아니니..
하지만.. 문장을 좀 길게 넣으면 segment fault 를 만날 수 있을 듯 싶군요...
2. c=(int)a; 이걸 무슨 의미로 사용하셨는지 궁금해지는군요 ;) 설마.. 저렇게 해서.. a에 있는 아스키코드값에 해당되는 값이 숫자로 변환되게 하려는 의도는 아니었길 빕니다..
3. if( c == 1 ) break; 흠 바로 위에서 c = (int) a; 를 하셨으니.. 입력값중 첫번째 value가.. asc코드로 1을 가져야겠군요.. 그건.. 평범한 방법으로는 입력할 수 있는 값이 아닐 듯 합니다 :D
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
제가 이런말씀 드리면 안되겠지만...-_-;;; 보고 있으려니 가
제가 이런말씀 드리면 안되겠지만...
-_-;;; 보고 있으려니 가슴이 아파서요...
C언어 공부 열심히 하세요. T-T
아마도 숫자 입력 외에는 입력을 받지 않도록 하는 프로그램을 작성하시려고 하신듯 하네요... 그리고 최대 100까지 입력을 받도록 하시는 건가요? 2자리 숫자까지?
흐으음... ( - -)a 조금 난감하네요.
ㅠ,.ㅜ 아직 자세히 모르면서 .. 이것 저것 짜볼려고 하니..
ㅠ,.ㅜ 아직 자세히 모르면서 ..
이것 저것 짜볼려고 하니..
기본부터 꾸준이 쌓아야 겟어요..
한권의 책을 여러본 보는게 낳을까요?
여러권의 책을 두루 보는게 낳을까요?
메일 : nan1004au@gmail.com
C의 기본은 그동안 여러번 언급되었지만The C Programmi
C의 기본은 그동안 여러번 언급되었지만
The C Programming Language 2nd edition 한권이면 되구요
이책을 바로 보기 힘드시다면
Teach your self C <- 가장 쉽지 않을까요?
A book on C <- 약간 어렵지만 책을 많이 안사도 될듯 합니다.
이 정도면 될듯 합니다.
특히 A book on C는 다양한 연습문제들이 더욱 단련시켜줄 것입니다.
그거 다 보고 액기스로 저 TCPL을 보면 문제가 없습니다
C++, 그리고 C++....
죽어도 C++
댓글 달기