正文

面试题目2006-10-29 17:58:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/daweizhao/19793.html

分享到:

找出数组中最后的最大的一个数的位置。

找出匹配的字符串的位置

找出小于n的似有素数

自己先在机子上编下,一会给结果

#include <iostream.h>
void main()
{
    int a[5]={2,4,5,78,9};
 int temp=a[0];  //用来暂时存储最大的,先赋值成第一个
 for(int i=1;i<5;i++)
 {
  if(temp>a[i])
    temp;
  else
   temp=a[i];
 }        //与其它的相比较(第一个外),大的话就让贤,否则保留,保留那

         //可以再改下?             
  cout<<temp<<endl;  

}第一个程序,还有不足处,想用动态数组,输入数据,然后求最大,还有就是感觉程序整体架构不行,for语句中的if else中不行。

#include <iostream.h>
void main()
{
 int n;
 cout<<"n is ";
 cin>>n;                       //要定义的数组的大小,注:cin中不能加>>endl;   
 int *a=new int[n];        //动态分配数组时,注意等式左侧数组定义要用指针型
 cout<<"please enter the array"<<endl; //
 for(int j=0;j<n;j++)
 {
  cin>>a[j];
 }                                      //由输入的数据来组成数组(可以有空格)
    int temp=a[0];
 for(int i=1;i<n;i++)
 {
  if(temp>a[i])
    temp;
  else
   temp=a[i];
 }          //比较大小,和上一个程序一样
  cout<<temp<<endl;
 delete [] a;

}这个加入了动态分配,想用动态数组着,但是钱能的书中没有,所以就用了动态分配。可以自己输入数组中元素个数n,然后动态输入数组元素

两个程序相比较,只是前面的部分相变化,后面的只是将第一个程序移植了过来。

不足之处,就是没有写注释,这个要记得写。好像写程序注释也是必须的呢!

才发现这个程序错误,要返回的是最大的数组元素下标,还要再改

#include <iostream.h>
void main()
{
 int n;
 cout<<"n is ";
 cin>>n;             //数组中元素个数
 int *a=new int[4];
 cout<<"please enter the array"<<endl;
 for(int j=0;j<n;j++)
 {
  cin>>a[j];
 }                   //输入数组中元素
    int temp=a[0];
 int k=0;
 for(int i=1;i<n;i++)
 {
  if(temp>a[i])
    temp;//如果大的话,不变
  else
  {
            temp=a[i];
   k=i;//如果小的话,变化,并且保存k
  } 
 
 }                   
  cout<<temp<<endl;
  cout<<k<<endl;//输出k
 delete [] a;//清除a
}问题已经解决了,输出的是下标,不过还有一问题,在运行的时候老出现一个提示框,有如下说明:

Debug error!

program:D\.........|p1.exe DAMAGE: after Normal block (#48) at 0x00441860

(Press Retry to debug the application)

为什么?(n太大时会有这个问题)

 

 

 

 

阅读(2411) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册