[问题] 去除重复问题[已解决]

楼主: 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