FOR 的神奇功用
1個for+1個if可以找最大值
[C++] 純文本查看 復制代碼 #include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
srand(time(NULL));
int arr[10];
for(int i=0;i<10;++i){
arr[i]=rand()%10;
cout<<arr[i]<<' ';
}
cout<<endl;
int max=0;
for(int i=1;i<10;++i)
if(arr[max]<arr[i])
max=i;
cout<<"Max = "<<arr[max];
}
2個for+1個if可以排序
[C++] 純文本查看 復制代碼 #include<iostream>
#include<cstdlib>
#include<ctime>
#include<algorithm>
using namespace std;
int main()
{
srand(time(NULL));
int arr[10];
for(int i=0;i<10;++i){
arr[i]=rand()%10;
cout<<arr[i]<<' ';
}
cout<<endl;
for(int i=0;i<10;++i)
for(int j=i+1;j<10;++j)
if(arr[i]>arr[j])
swap(arr[i],arr[j]);
cout<<"由小到大 : ";
for(int i=0;i<10;++i)
{
cout<<arr[i]<<' ';
}
cout<<endl;
}
3個for+1個if可以找一張地圖任兩點間的最短路徑
[C++] 純文本查看 復制代碼 #include<iostream>
#include<cstdlib>
#include<ctime>
#include<algorithm>
using namespace std;
int main()
{
srand(time(NULL));
int arr[10][10];
cout<<"一張地圖:"<<endl;
for(int i=0;i<10;++i){
for(int j=0;j<10;++j){
arr[i][j]=rand()%10;
if(i==j)arr[i][j]=0;
cout<<arr[i][j]<<' ';
}
cout<<endl;
}
cout<<endl;
for(int i=0;i<10;++i)
for(int j=0;j<10;++j)
for(int k=0;k<10;++k)
if(arr[j][k] > arr[j][i]+arr[i][k])
arr[j][k] = arr[j][i]+arr[i][k];
cout<<"兩兩點之間最短路的長度 : "<<endl;
for(int i=0;i<10;++i)
{
for(int j=0;j<10;++j)
cout<<arr[i][j]<<' ';
cout<<endl;
}
cout<<endl;
}
|