나는 책에서 주어진 문제에 갇혀있다. 문제는 -프로그램에서 예상치 못한 결과가 나타나는 이유는 무엇입니까?
원형 적 인터넷 초보자 messages.Here의 전형적인 B1FF의 성명서 :
H3Y DUD3, C (15) R1LLY C00L
쓰기 wriring의 독특한 방법을 가지고 동료 이름 B1FF입니다
하는 메시지를 입력 : 이봐 친구가, C는 rilly B1FF 발언에서 멋진
입니다 : H3Y DUD3, C (15) R1LLY C00L
사용자가 입력 한 메시지를 읽고 B1FF 발언으로 변환하는 "B1FF 필터" 프로그램에서 messa를 변환해야합니다. (A = 4, B = 8, E = 3, I = 1, O = 0, S = 5)를 대문자로 대문자로 대체하십시오. - 프로그램
의
내 프로그램 -
#include<stdio.h>
int main()
{
char arr[50]={0},ch[50]={0};
int i=0;
printf("\nenter the sentence : ");
while(arr[i-1]!='\n')
{
scanf("%c",&arr[i]);
i++;
}
i=0;
while(arr[i]!='\n')
{
if(arr[i]=='e')
ch[i]='3';
if(arr[i]==('A'||'a'))
ch[i]='4';
if(arr[i]==('B'||'b'))
ch[i]='8';
if(arr[i]==('I'||'i'))
ch[i]='1';
if(arr[i]==('o'||'O'))
ch[i]='0';
if(arr[i]==('S'||'s'))
ch[i]='5';
else ch[i]=arr[i]-32;
i++;
}
ch[i]='\n';
i=0;
printf("\nIn B1FF-SPEAK : ");
while(ch[i]!='\n')
{
printf("%c",ch[i]);
i++;
}
printf("\n");
return 0;
}
OUTPUT 나는 프로그램이 알파벳을 변환하지 않는 이유를 이해하지 않고 왜 scanf()
가 아닌지 문자로 space
을 수락 하시겠습니까?
워크. i의 값에주의를 기울이십시오. 특히 줄에서 하나를 빼고 배열 색인으로 사용하는 줄에 특히주의하십시오! –
왜 'scanf'를 사용하여 단일 문자를 읽으십니까? 알다시피, 그것은 전체 문자열을 읽을 수 있습니다, 그렇죠? 또한'man scanf'를 읽어서 공백으로 무엇을하는지 이해하십시오. –
if 문에서 논리적 실수를 볼 수 있도록 코드를 올바르게 들여 쓰기하십시오. –