1. 随机产生10个30~100(包括30,100)的正整数,求它们的最大值、最小值、平均值,并显示整个数组的值和结果。
yzy's version:
1 #include <iostream> 2 #include<time.h> 3 using namespace std; 4 int main() 5 { 6 int a[10], i,max,min,mean,sum(0); 7 8 for(i=0;i<10;i++) 9 { 10 //srand(time(NULL)); 11 a[i]=rand()%71+30; 12 cout<<a[i]<<' '; 13 } 14 max=a[0]; 15 for (i=1;i<10;i++) 16 if(a[i]>max) 17 max=a[i]; 18 min=a[0]; 19 for (i=1;i<10;i++) 20 if(a[i]<min) 21 min=a[i]; 22 for (i=0;i<10;i++) 23 sum+=a[i]; 24 mean=sum/10; 25 cout<<" \n max="<<max<<" min="<<min<<" mean="<<mean<<endl; 26 system("pause"); 27 return 0; 28 }
同学指出的问题:
mean=sum/10; 是整数,应改为mean=sum/10.0 ;
2.
随机产生20个学生的计算机课程的成绩(0~100),按照从大到小的顺序排序,分别显示排序前和排序后的结果。
yzy's version:
1 #include <iostream> 2 #define N 20 3 using namespace std; 4 int main() 5 { 6 int a[N],i,j,t; 7 cout<<"\n before:\n"; 8 for(i=0;i<N;i++) 9 { 10 a[i]=rand()%101; 11 cout<<a[i]<<' '; 12 } 13 for(i=0;i<N-1;i++) 14 for(j=0;j<N-i-1;j++) 15 if(a[j]<a[j+1]) 16 { 17 t=a[j]; 18 a[j]=a[j+1]; 19 a[j+1]=t; 20 } 21 cout<<"\n after:\n"; 22 for(i=0;i<N-1;i++) 23 cout<<a[i]<<' '; 24 system("pause"); 25 return 0; 26 }
3. 随机产生10个数,输入1~10之间的正整数m,使数组元素右移m位,移出的元素再从左移入。
如,假设原来的数组元素依次为:1 2 3 4 5 6 7 8 9 10,假设m为2,则右移2位后的数组元素依次为:9 10 1 2 3 4 5 6 7 8
yzy's version:
1 #include <iostream> 2 #define N 10 3 using namespace std; 4 int main() 5 { 6 int a[N],i,j,m,t; 7 for(i=0;i<N;i++) 8 { 9 a[i]=rand()%101; 10 cout<<a[i]<<' '; 11 } 12 cout<<"输入1~10之间的正整数m"; 13 cin>>m; 14 for(i=1;i<m+1;i++) 15 { 16 t=a[N-1]; 17 for(j=N-1;j>=0;j--) 18 { 19 a[j+1]=a[j]; 20 } 21 a[0]=t; 22 } 23 for(i=0;i<N;i++) 24 cout<<a[i]<<' '; 25 system("pause"); 26 return 0; 27 }
4.
按由大到小的顺序输入10个int类型的数据将其存放在一个一维数组中,再输入一个整数到变量x,用二分法查找x是否是数组中的元素,若是,输出其在数组中的位置,否则输出不在数组中的提示。
yzy's version:
1 #include <iostream> 2 #define N 10 3 using namespace std; 4 int main() 5 { 6 int a[N], i, mid, x, low, high; 7 cout << "从大到小输入10个整数(空格分开)"; 8 for (i = 0; i < N; i++) 9 cin >> a[i]; 10 for (i = 0; i < N; i++) 11 cout << a[i] << ' '; 12 cout << "输入一个整数"; 13 cin >> x; 14 low = 0; 15 high = N - 1; 16 while (low <= high) 17 { 18 mid = (low + high) / 2; 19 if (x == a[mid]) 20 break; 21 else if (x > a[mid]) 22 high = mid - 1; 23 else 24 low = mid + 1; 25 } 26 if (low > high) 27 cout << "没找到" << endl; 28 else 29 cout << mid+1 << endl; 30 system("pause"); 31 return 0; 32 }