C++打印不同的数(就几行代码),帮忙修改下程序啊,谢谢大家
题目要求是:一个10个数的数组,输出其中不同的数,即如果一个数出现多次,只打印一次。
我写的程序如下,错误的地方标注出来了,
可是我不知道怎么修改啊,麻烦大家修改下,谢谢
void main()
{
int num[10];
cout<<"输入10个数字"<<endl;
cin>>num[0];
int a = 0, n = 1;
for (int i = 1;i<10;i++)
{
cout<<"输入10个数字"<<endl;
cin>>a;
int j;
for ( j = 0;j<n;j++)
{
if (num[j]==a)
{
break;
}
}
if (num[j]==a)//
{
break;/*就这里出现问题了,可是我不知道怎么改,麻烦大家帮忙想一想,我知道break是跳出外层循环了,蛋是不知道这里怎么修改的好*/
}
else
{
num[n]=a;
n++;
}
}
for (int k = 0;k<n;k++)
{
cout<<num[k]<<endl;
}
}
[解决办法]
。。。把break;改为Continue吧。
[解决办法]
仅供参考
//将out.txt文件中的内容排序并去重,结果保存到unique.txt中#include <stdio.h>#include <stdlib.h>#define MAXLNO 10000000 //能处理的最大行数#define MAXLEN 20 //能处理的最大行宽,包括行尾的\n和字符串尾的\0char buf[MAXLNO][MAXLEN];int ln,i;FILE *f;int cmpfun( const void *arg1, const void *arg2 ) { return strcmp((const char *)arg1,(const char *)arg2);}int main() { f=fopen("out.txt","r"); if (NULL==f) { printf("Can not find file out.txt\n"); return 1; } ln=0; while (1) { if (NULL==fgets(buf[ln],MAXLEN,f)) break; ln++; if (ln>=MAXLNO) { printf("Lines >%d ignored.",MAXLNO); break; } } fclose(f); if (ln>1) qsort(buf,ln,MAXLEN,cmpfun); f=fopen("unique.txt","w"); if (NULL==f) { printf("Can not create file unique.txt\n"); return 2; } fprintf(f,"%s",buf[0]); if (ln>1) for (i=1;i<ln;i++) { if (strcmp((const char *)buf[i-1],(const char *)buf[i])) fprintf(f,"%s",buf[i]); } fclose(f); return 0;}