回 帖 发 新 帖 刷新版面

主题:求助求助SOS

#include "stdafx.h"
#include <iostream>
using namespace std;
int k;
int main()
{  
    int Num[10] = {0};
    int array[10] = {0};
  
    for (int i = 0; i < 10; i++)
    {
        cout << "Enter a number: ";
        cin >> Num[i];
    }

    for (i = 0; i < 10; i++)
    {  
        for(int j = 0, k = 0; j < i; j++)
        {
          if(Num[i] == Num[j])
          {              
            array[k] = Num[j];  
            Num[i] = 0;
            Num[j] = 0;
            k++;                
          }
        }        
    }
    cout << "these distinct numbers are ";
    for(i = 0; i < 10 ; i++)
    {
        if(Num[i] != 0)
        cout << Num[i] << " ";
    }

    for(int a = 0;a <= k;a++)
    {
        cout << array[a] << " ";
    }
 cout<< "\n";
 return 0;
}


题目要求是输入10个数,输出其中不行同的数,即出现多次的数只输出一次。


当我前2个数输入的数一样时,发现这个数没有输出。
还有当输入有3个一样的数,且其中有一个是最后输入的时候,将会输出这个数2次。
[em52]
不知道有没有表达清楚。   看看哪里出错了

回复列表 (共1个回复)

沙发

#include <iostream>
using namespace std;
int k=0;
int main()
{    bool b=false;
    int Num[10] = {0};
    int array[10] = {0};
  
    for (int i = 0; i < 10; i++)
    {
        cout << "Enter a number: ";
        cin >> Num[i];
    }

    for (i = 1; i < 10; i++)
    {  b=false;
        for(int j = 0; j < i; j++)
        {
          if(Num[i] == Num[j])
          {              
              for(int c=0;c<=k;c++) 
                  if(array[k] == Num[j]) b=true;
            if(!b)    {
                k++;
               array[k] = Num[j];  
               Num[j] = 0;               
              }
             else Num[j]=0;

        }        
    }
    }
    cout << "these distinct numbers are ";
    for(i = 0; i < 10 ; i++)
    {
        if(Num[i] != 0)
        cout << Num[i] << " ";
    }
    cout<<endl;
    cout<<"these  identical numbers ";

    for(int a = 1;a <= k;a++)
    {
        cout << array[a] << " ";
    }
 cout<< "\n";
 return 0;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册