我被困在一本書中給出的問題。問題是 -爲什麼程序給出了意想不到的輸出?
原型的網絡新手是老鄉的名字B1FF,誰擁有wriring messages.Here的典型B1FF公報:
H3Y DUD3,C 15 R1LLY C00L
寫的獨特方式一個「B1FF濾波器」,其讀取由用戶輸入的消息,並將其轉換成B1FF發言:
輸入消息:嘿哥們,C是rilly涼爽
在B1FF發言:H3Y DUD3,C 15 R1LLY C00L
你的程序應該轉換messa ge替換爲大寫字母,替換某些字母的數字(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
作爲角色?
大道直通其與調試。注意我的值 - 特別是在你從中減去一個值的行上,然後用它作爲數組索引! –
你爲什麼使用'scanf'來讀取單個字符?你知道,它可以讀取整個字符串,對嗎?還請閱讀'man scanf'以瞭解它在空間上做了什麼。 –
正確縮進您的代碼,以便您可以在if語句中看到邏輯錯誤。 –