留学生题目

  1 #include <iostream>
  2 #include "stdlib.h"
  3 using  namespace std;
  4 
  5 void Show()
  6 {
  7     cout<<"CIS 25 – C++ Programming 
";
  8     cout<<"Laney College 
";
  9     cout<<"Your Name 

";
 10     cout<<"Assignment Information -- 
";
 11     cout<<"  Assignment Number: Lab 03, 
";
 12     cout<<"                     Coding Assignment -- Exercise #1 
";
 13     cout<<"  Written by:        Your Name 
";
 14     cout<<"  Submitted Date:    Due Date 
";
 15 }
 16 
 17 
 18 void Calculate()
 19 {
 20     int size;
 21     int tmp;
 22     int i,j,k;
 23 
 24     cout << "
How many intergers?  ";
 25     cin >> size;
 26 
 27     int *ptrPtr = new int[20];
 28 
 29     for (i = 0; i < size; i++) {
 30 
 31         cout << "Enter integer #"<< i + 1 << ": ";
 32         cin >> tmp;
 33 
 34         *(ptrPtr + i) =  tmp;
 35     }
 36 
 37     cout<<"
The original array:
";
 38     for (j = 0; j < size; j++)
 39         cout << "  " << *(ptrPtr  + j)<<"
";
 40     cout<<"
Calling extractUncommonDigitYourName() –

";
 41     cout<<"Displaying after returning the array -- The uncommon digits:
";
 42 
 43 
 44 //    cout<<size<<endl;
 45     char **Total_data =NULL;
 46     Total_data  = new char*[size];
 47     int* num = new int[10];//every data digital
 48     for (i = 0; i < size; i++) {
 49         *(Total_data + i) = new char[10];
 50         if(*(ptrPtr + i)<0)*(ptrPtr + i) = -(*(ptrPtr + i));//取相反数
 51         _itoa(*(ptrPtr + i), *(Total_data + i), 10);
 52         //cout<<*(ptrPtr + i)<<endl;
 53         j = 0;
 54         for(;*(*(Total_data+i)+j)!='';j++){}
 55         *(num+i) = j;
 56     //    for(j=0;j<*(num+i);j++)cout<<*(*(Total_data+i)+j)<<" ";
 57     //    cout<<endl;
 58     }
 59 //    for(i=0;i<size;i++)cout<<*(num+i)<<endl<<endl;
 60 
 61     char *total_num = new char[100];
 62     int number = 0;
 63     bool flags = false;
 64     for(i=0;i<size;i++)
 65     {
 66         for(j=0;j<*(num+i);j++)
 67         {
 68             flags = true;
 69             for(k=0;k<number;k++)
 70             {
 71                 if(*(total_num+k)==*(*(Total_data+i)+j))
 72                 {
 73                     flags = false;
 74                     break;
 75                 }
 76             }
 77             if(flags)
 78             {
 79                 *(total_num+number) = *(*(Total_data+i)+j);
 80                 number++;
 81             }
 82         }
 83     }
 84 //    for(i=0;i<number;i++)cout<<*(total_num+i)<<" ";
 85 //    cout<<endl;
 86 
 87     char *last_data = new char[100];
 88     int last_number = 0;
 89     int count = 0;//某个数字在几组数据出现的次数
 90     for(i=0;i<number;i++)
 91     {
 92         count = 0;
 93         for(j=0;j<size;j++)
 94         {
 95             for(k=0;k<*(num+j);k++)
 96             {
 97                 if(*(*(Total_data+j)+k)==*(total_num+i))
 98                 {
 99                     count++;
100                     break;
101                 }
102             }
103         }
104         if(count==1)//某个数字只在这几组数据中一组数据出现
105         {
106             *(last_data+last_number) = *(total_num+i);
107             last_number++;
108         }
109     }
110 
111 //    for(i=0;i<last_number;i++)cout<<*(last_data+i)<<" ";
112 //    cout<<endl;
113     if(last_number==0){
114         cout<<"  There is/are no uncommon digit(s)
"<<endl;
115     }else{
116         //希尔排序算法
117         int dh,temp;
118         dh=last_number/2;
119         while(dh>=1){
120             for( i=dh;i<last_number;i++){
121                 temp=*(last_data+i);
122                 j=i-dh;
123                 while(j>=0&&*(last_data+j)>temp){
124                     *(last_data+j+dh)=*(last_data+j);
125                     j-=dh;
126                 }
127                 *(last_data+j+dh)=temp;
128             }
129             dh/=2;
130         }
131     //    for(i=0;i<last_number;i++)cout<<*(last_data+i)<<" ";
132     //    cout<<endl;
133         cout<<"  There is/are "<<last_number<<" uncommon digit(s)
";
134         for(i=0;i<last_number;i++)//输出偶数
135         {
136             if(*(last_data+i)%2==0)cout<<"    "<<*(last_data+i)<<endl;
137         }
138         for(i=0;i<last_number;i++)//输出奇数
139         {
140             if(*(last_data+i)%2!=0)cout<<"    "<<*(last_data+i)<<endl;
141         }
142         cout<<endl;
143     }
144 
145 }
146 
147 
148 int main()
149 {
150     Show();
151     int option;
152     //bool flags = true;
153     while(1)
154     {
155     //    flags = false;
156         cout<<"*********************************************
";
157         cout<<"* MENU * 
";
158         cout<<"* 1. Calling extractUncommonDigitYourName() * 
";
159         cout<<"* 2. Quit * 
";
160         cout<<"********************************************* 
";
161         cout<<"Select an option (1 or 2):";
162         cin>>option;
163         if(option!=2&&option!=1)
164         {
165             cout<<"
  WRONG OPTION!

";
166         }else  {
167             switch(option)
168             {
169             case 1:
170                 Calculate();
171                 break;
172             case 2:
173                 cout<<"
  Fun Exercise ..."<<endl;
174                 exit(0);
175                 break;
176             }
177         }
178     }
179     return 0;
180 }
原文地址:https://www.cnblogs.com/minmsy/p/5218613.html