m0_51430508
shuo.J
采纳率50%
2020-12-06 14:25

C语言,函数还有指针结合。

已采纳

自定义一个函数,找出一行英文句子中最长的单词出现的开始位置和最长单词的字符个数,英文句子的输入和最终输出结果要求在主函数中实现。(函数要同时返回两个值)?
因为没有学过指针,希望大佬劳神写下代码,实在不行思路也好,求!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • shanwei274 二十岁的编程男神王大爷 4月前
    int search(char s[], int* len)
    {
    	void swap(int*, int*);//定义swap交换函数
    	int max, index, t_index, i,t_len;
    
    	max = index = i = 0;//初始化
    	while (s[i] != '\0')
    	{
    		i = i + 1;//跳过s[i]是空格
    		t_index = i;//暂时的下标
    		t_len = 0;//每次将长度初始化
    		while (s[i] != ' ' && s[i] != '\0')//这里两个判断条件防止在最后没有空格的地方无限循
    		{
    			i++;
    			t_len ++;
    		}
    		if (max < t_len)
    		{
    			swap(&max, &t_len);//交换值
    			swap(&index, &t_index);
    
    		}
    	}
    	*len = t_len;//让主函数里面传入进来的数值是当前的最大值
    	return index;//返回我们的下标
    
    }
    void swap(int* a, int*b)
    {
    	int temp;
    	temp = *a;
    	*a = *b;
    	*b = temp;
    
    }
    点赞 评论 复制链接分享
  • shanwei274 二十岁的编程男神王大爷 4月前

    另外英语句子是在数组里面吗,还有最长单词开始的位置是要求给出开始的下标吗

    点赞 1 评论 复制链接分享
  • shanwei274 二十岁的编程男神王大爷 4月前

    我可以试着写写,另外一个函数如果要return两个值是不可能的,只能考虑传地址,另外如果函数的参数列表里面没有传地址的话那就没办法了,我现在上手打打

    点赞 1 评论 复制链接分享
  • shanwei274 二十岁的编程男神王大爷 4月前

    估计有好多地方不合适,你可以试着改一改,大概思路就是这样,按照空格划分每个单词,可能下标有点问题,希望能采纳,另外你也是大一学生吗?

    点赞 评论 复制链接分享