hehong9631
2017-09-07 14:50
采纳率: 100%
浏览 728

请教一下大佬一道C++编程哪里出错了

程序如下:
//输入数组,判断出数组中长度最长的一个并输出长度为多少; 

#include
//#include
using namespace std;
const int m=5;            //数组大小 
int strlen(char a)        //数组元素长度计算 
{
int k;
k=sizeof(a)/2;       //char型所以除2 
return k; 

int main()
{
char a[m];
int *p,i,j,n;
cout<<"Please input the number:";
for(i=0;i {
cin>>a[i];
}
n=strlen(a[0]);
for(j=1;j<i;j++)    //判断大小 
{

  if(n   {
  n=strlen(a[j]);
 }
 else if(n>strlen(a[j]))
 {
  n=strlen(a[0]);
 }
    }
    cout<<a[j]<<endl<<n;
    return 0;
 } 
题比较简单,就是想知道我在哪里出错了,谢谢!!
结果没有显示最长长度的数组元素和长度

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • blownewbee 2017-09-08 00:23
    已采纳

    int strlen(char a) //数组元素长度计算
    {
    int k;
    k=sizeof(a)/2; //char型所以除2
    return k;
    }
    这个不对,应该是
    int strlen(char * c)
    {
    int i = 0;
    while (*c)
    {
    i++;
    c++;
    }
    return i ;
    }

    点赞 评论
  • jalen_zh 2017-09-08 03:50

    char a[5];这个数组是一个字符数组不是字符串数组;应该是char *a[5]

    点赞 评论

相关推荐 更多相似问题