問題(1)每次輸入正確的元素如a,if陳述句進入過后還會列印else里面的陳述句,不知道哪里出了問題?
看if的條件我覺得邏輯上沒什么問題啊??求指導!!
(2)輸入非法元素,如“。”這個回圈然后就變成三遍,然后輸入“.” ,回圈就變成了兩遍,
不知道為什么,這個問題我的其他程式也總是遇見,請問這是什么原因呢??
#include <stdio.h>
void inversion ();
int main ()
{
char a[100]={'0'};
char c;
int i=0,length=0;
do
{
printf("\nplease enter a letter(if want to exit,enter'/'):");
scanf("%c",&c);
if(c>='a'&&c<='z'||c>='A'&&c<='Z'||c=='/')
{
a[i]=c;
i++;
}
else
{
printf("\nError! please enter a 'letter'!");
}
}while(c!='/'&&i<100);
if(a[0]=='/')
printf("\n未輸入元素,無法逆置");
else if(a[1]=='/')
printf("\n只有一個元素%c,無法逆置",a[0]);
else
{
length=i;
inversion(a,length);
printf("元素逆置為:\n");
for(i=0;i<length;i++)
printf("%c ",a[i]);
}
}
void inversion(char a[],int length)
{
int p,q;
char t;
p=0; q=length-1;
while(p<q)
{
t=a[p];
a[p]=a[q];
a[q]=t;
p++;
q--;
}
}

這個是問題(1)的截圖

這個是問題(2)的截圖
現在此謝謝各位!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/234075.html
標籤:C語言
