[問題] 去除重複問題[已解決]

作者: NMOSFET (NMOSFET)   2015-04-21 05:09:02
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
題目:
(去除重複)使用一個意為陣列,
讀進10個A~Z之間的字元,
當每個字元讀近來時,
如果之前沒有輸入過這個字元,
便將它印出來。
請使用最壞的情況(即10個都不一樣)
盡你所能地以最小的陣列來解決這個問題。
程式碼(Code):
#include <stdio.h>
void main(void)
{
char a[10];
int n = 0;
for (int i = 0; i < 10; i++)
{
printf("請輸入a[%d]的字元\n", i);
scanf("%c", &a[i]);
for (int j = 0; j < i;j++)
{
if (a[i] == a[j])
{
n+=1;
break;
}
}
if (n == 0)
printf("a[%d]的內容為%c\n", i, a[i]);
else
printf("a[%d]的內容出現過不輸出\n",i);
n = 0;
}
}
補充說明(Supplement):
目前自學做書上的題目,
每次輸入都會跳過一個元素(只能輸入a[0],a[2],a[4]...)
我想好久想不到我哪裡出錯了...
懇求哪位大大能夠幫我解惑(跪
作者: springman (司布林)   2015-04-21 05:33:00
if (a[i] = a[j]) 改成 if (a[i] == a[j])if (n = 0) 改成 if (n == 0)您這樣做陣列會最少嗎?反正不超過 10 個可能就可以,不然重複的元素不必記
作者: ji2my (hkt)   2015-04-21 08:29:00
你這個是scanf常見問題 因為你按下enter也是一個字元再宣告一個char b; 然後那行改成scanf("%c%c", &a[i], &b);

Links booklink

Contact Us: admin [ a t ] ucptt.com