c++第5章

<pre class="html" name="code"><pre class="html" name="code"><pre class="html" name="code">#include <iostream> 

using namespace std; 

int main() 









{ const int n=5; 

  int a[n],i,temp; 

  cout<<"enter array a:"<<endl;  

  for (i=0;i<n;i++) 

    cin>>a[i]; 

  cout<<"array a:"<<endl; 

  for (i=0;i<n;i++) 

   cout<<a[i]<<" "; 

  for (i=0;i<n/2;i++)            //

循环的作用是将对称的元素的值互换

 

    { temp=a[i]; 

      a[i]=a[n-i-1]; 

      a[n-i-1]=temp; 

     } 

  cout<<endl<<"Now,array a:"<<endl; 

  for (i=0;i<n;i++) 

    cout<<a[i]<<" "; 

  cout<<endl; 

  return 0; 

}    

 

#include <iostream> 

#include <iomanip> 

using namespace std; 

int main() 

 {const int n=11; 

  int i,j,a[n][n]; 

  for (i=1;i<n;i++) 

    {a[i][i]=1; 









     a[i][1]=1; 

    } 

  for (i=3;i<n;i++) 

    for (j=2;j<=i-1;j++) 

       a[i][j]=a[i-1][j-1]+a[i-1][j]; 

  for (i=1;i<n;i++) 

    {for (j=1;j<=i;j++) 

       cout<<setw(5)<<a[i][j]<<" "; 

     cout<<endl; 

    } 

  cout<<endl; 

  return 0; 

} 




#include <iostream> 

using namespace std; 

int main() 

{ const int n=4,m=5;        //

假设数组为

4

行

5

列

      

  int i,j,a[n][m],max,maxj; 

  bool flag; 

  for (i=0;i<n;i++)         //

输入数组

 

     for (j=0;j<m;j++) 

      cin>>a[i][j]; 

  for (i=0;i<n;i++)          

   {max=a[i][0]; maxj=0;     

    for (j=0;j<m;j++)      //

找出第

i

行中的最大数

 

 

  if (a[i][j]>max) 

 

    {max=a[i][j];      //

将本行的最大数存放在

max

中

 









 

     maxj=j;           //

将最大数所在的列号存放在

maxj

中

 

 

    } 

    flag=true;            //

先假设是鞍点,以

flag

为真代表

 

    for (int k=0;k<n;k++) 

 

  if (max>a[k][maxj])  //

将最大数和其同列元素相比

 

 

     {flag=false;     //

如果

max

不是同列最小,表示不是鞍点令

flag1

为

  

假

 

 

      continue;} 

    if(flag)             //

如果

flag1

为真表示是鞍点

 

 

{cout<<"a["<<i<<"]["<<"["<<maxj<<"]="<<max<<endl; 

 

                     //

输出鞍点的值和所在行列号

 

 

 break; 

 

} 

  }  

  if(!flag) 

            //

如果

flag

为假表示鞍点不存在

 

    cout<<"It does not exist!"<<endl; 

   return 0; 

  }  

 

#include <iostream> 

using namespace std; 

int main() 

{ const int n=7; 

  int i,number,top,bott,mid,loca,a[n]; 

  bool flag=true,sign; 

  char c; 

  cout<<"enter data:"<<endl;; 









  cin>>a[0]; 

  i=1; 

  while(i<n) 

   {cin>>a[i]; 

    if (a[i]>=a[i-1]) 

      i++; 

    else 

      cout<<"enter this data again:"; 

   } 

  cout<<endl; 

  for (i=0;i<n;i++) 

    cout<<a[i]<<" "; 

  cout<<endl; 

  while(flag) 

    {cout<<"input number to look for:"; 

     cin>>number; 

     sign=false; 

     top=0;            //top

是查找区间的起始位置

 

     bott=n-1;         //bott

是查找区间的最末位置

 

     if ((number<a[0])||(number>a[n-1]))  //

要查的数不在查找区间内

 

       loca=-1;        // 

表示找不到

 

     while ((!sign) && (top<=bott)) 

       {mid=(bott+top)/2; 

        if (number==a[mid]) 

         {loca=mid; 

          cout<<"Find "<<number<<", its position is "<<loca+1<<endl; 

 

 

  sign=true; 

         } 

        else if (number<a[mid]) 









         bott=mid-1; 

        else 

        top=mid+1; 

       } 

     if(!sign||loca==-1) 

       cout<<number<<" has not found."<<endl;; 

     cout<<"continu or not(Y/N)?"; 

     cin>>c; 

     if (c=='N'||c=='n') 

 

   flag=false; 

    } 

   return 0; 

 }  

#include <iostream> 

using namespace std; 

int main() 

  {int sum_day(int,int); 

   int leap(int year); 

   int year,month,day,days=0; 

   cout<<"input date(year,month,day):"; 

   cin>>year>>month>>day; 

   cout<<year<<"/"<<month<<"/"<<day; 

   days=sum_day(month,day);                                   /* 

调用函数一

   

*/ 

   if(leap(year) && month>=3)                                 /* 

调用函数二

   

*/ 

     days=days+1; 

   cout<<" is the "<<days<<"th day in this year."<<endl; 









   return 0; 

   } 

 

 

int sum_day(int month,int day)          //

计算日期

  

  {int i;  

   int day_tab[12]={31,28,31,30,31,30,31,31,30,31,30,31};   

   for (i=0;i<month-1;i++) 

      day+=day_tab[i]; 

   return(day); 

  }                     

      

int leap(int year)                     //

判断是否为闰年

  

 {int leap; 

  leap=year%4==0&&year%100!=0||year%400==0; 

  return(leap); 

 }  

#include <iostream> 

using namespace std; 

int main() 

{int i,j,upper,lower,digit,space,other; 

 char text[3][80]; 

 upper=lower=digit=space=other=0; 

 for (i=0;i<3;i++) 

   {cout<<"please input line "<<i+1<<endl; 

    gets(text[i]); 

    for (j=0;j<80 && text[i][j]!='\0';j++) 









      {if (text[i][j]>='A'&& text[i][j]<='Z') 

         upper++; 

       else if (text[i][j]>='a' && text[i][j]<='z') 

         lower++; 

       else if (text[i][j]>='0' && text[i][j]<='9') 

         digit++; 

       else if (text[i][j]==' ') 

         space++; 

       else 

         other++; 

     } 

   } 

   cout<<"upper case:"<<upper<<endl; 

   cout<<"lower case:"<<lower<<endl; 

   cout<<"digit     :"<<digit<<endl; 

   cout<<"space     :"<<space<<endl; 

   cout<<"other     :"<<other<<endl; 

   return 0; 

}  

#include <iostream> 

using namespace std; 

int main() 

{ char a[5]={'*','*','*','*','*'}; 

  int i,j,k; 

  char space=' '; 

  for (i=0;i<5;i++)              // 

输出

5

行

  

   { cout<<endl;                 // 

输出每行前先换行

  

     cout<<"    ";               // 

每行前面留

4

个空格

  









     for (j=1;j<=i;j++) 

       cout<<space;              // 

每行再留一个空格

  

     for (k=0;k<5;k++) 

       cout<<a[k];               // 

每行输出

5

个

*

号

 

 

}    

  cout<<endl; 

   return 0; 

}  

5.11

题另一解

 

#include <iostream> 

#include <string> 

using namespace std; 

int main() 

{ string stars="*****"; 

  int i,j; 

  for (i=0;i<5;i++)              // 

输出

5

行

  

   { cout<<"    ";               // 

每行前面留

4

个空格

 

     for (j=1;j<=i;j++) 

       cout<<" ";               // 

每行再插入

i

个空格

     

     cout<<stars<<endl;         // 

输出

5

个

*

号

 

  }    

  return 0; 

}  

#include <iostream> 

using namespace std; 

int main() 

 {int j,n; 









  char ch[80],tran[80]; 

  cout<<"input cipher code:"; 

  gets(ch); 

  cout<<"cipher code:"<<ch<<endl; 

  j=0; 

  while (ch[j]!='\0') 

  { if ((ch[j]>='A') && (ch[j]<='Z')) 

      tran[j]=155-ch[j]; 

    else if ((ch[j]>='a') && (ch[j]<='z')) 

      tran[j]=219-ch[j]; 

    else 

      tran[j]=ch[j]; 

    j++; 

  } 

  n=j; 

  cout<<"original text:"; 

  for (j=0;j<n;j++) 

    putchar(tran[j]); 

  cout<<endl; 

  return 0; 

 } 

 

#include <iostream> using namespace std; int main() {int a[3][3],sum=0; int i,j; cout<<"enter data:"<<endl;; for (i=0;i<3;i++) for (j=0;j<3;j++) cin>>a[i][j]; for (i=0;i<3;i++) sum=sum+a[i][i]; cout<<"sum="<<sum<<endl; return 0; }
 

#include <iostream> 

using namespace std; 

int main() 









 {int a[11]={1,4,6,9,13,16,19,28,40,100}; 

   int num,i,j; 

   cout<<"array a:"<<endl; 

   for (i=0;i<10;i++) 

     cout<<a[i]<<" "; 

   cout<<endl;; 

   cout<<"insert data:"; 

   cin>>num; 

   if (num>a[9]) 

     a[10]=num; 

   else 

    {for (i=0;i<10;i++) 

     {if (a[i]>num) 

       {for (j=9;j>=i;j--) 

         a[j+1]=a[j]; 

        a[i]=num; 

 

 

break; 

       } 

      } 

     } 

  cout<<"Now, array a:"<<endl; 

  for (i=0;i<11;i++) 

    cout<<a[i]<<" "; 

  cout<<endl; 

  return 0; 

 } 

#include <iostream> using namespace std; //#include <math.h> int main() {int i,j,min,temp,a[11]; cout<<"enter data:"<<endl; for (i=1;i<=10;i++) {cout<<"a["<<i<<"]="; cin>>a[i]; //输入10个数 } cout<<endl<<"The original numbers:"<<endl;; for (i=1;i<=10;i++) cout<<a[i]<<" "; // 输出这10个数 cout<<endl;; for (i=1;i<=9;i++) //以下8行是对10个数排序 {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; //以下3行将a[i+1]~a[10]中最小者与a[i] 对换 a[i]=a[min]; a[min]=temp; } cout<<endl<<"The sorted numbers:"<<endl; for (i=1;i<=10;i++) // 输出已排好序的10个数 cout<<a[i]<<" "; cout<<endl; return 0; }
 

#include <iostream> #include <iomanip> using namespace std; #include <math.h> int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i<sqrt(100);i++) for (j=i+1;j<=100;j++) {if(a[i]!=0 && a[j]!=0) if (a[j]%a[i]==0) a[j]=0; } cout<<endl; for (i=1,n=0;i<=100;i++) {if (a[i]!=0) {cout<<setw(5)<<a[i]<<" "; n++;} if(n==10) {cout<<endl; n=0;} } cout<<endl; return 0; }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值