Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >编译时出错:类型不兼容和类似的警告(附图)

编译时出错:类型不兼容和类似的警告(附图)
EN

Stack Overflow用户
提问于 2020-12-16 12:38:55
回答 3查看 56关注 0票数 0

我正在编写一个函数,该函数使用递归性返回数组的逆数组,但我不断收到以下警告:

以下是我的代码

代码语言:javascript
运行
AI代码解释
复制
#include <stdio.h>
#include <stdlib.h>

int inv( float* t[],int n)
{   float u;
    if (n==0) return 0;
    else
    {
        u=*t;
        *t=*(t+n);
        *(t+n)=u;
        return(inv(*(t+1),n-1));
    }

}

int main()
{
    float t[]={1,2,3,4,5,6,7,8,9};
    int n=sizeof t /sizeof *t;
    int i=0;
    inv(t,n);
    for(i=0;i<n;i++)printf("%f",t[i]);
    return 0;
}
EN

回答 3

Stack Overflow用户

发布于 2020-12-16 12:55:54

浮点数int inv(

* t[],int n)

这里,float* t[]声明了一个指针数组。请注意,*t[i] = *(*(t+i))

如果i= 0,则为*(*(t+i)) = *(*(t)) = *(*t)

这里,*tfloat*类型,u是float类型。

使用表达式u=*t;会产生该错误(将float*值赋给float)

解决方案:int inv( float* t[],int n)更改为int inv( float t[],int n)

票数 0
EN

Stack Overflow用户

发布于 2020-12-16 13:02:21

我使用一个过程将数组元素按降序排列

代码语言:javascript
运行
AI代码解释
复制
#include <stdio.h>
#include <stdlib.h>

void revs(int i, int n, float *arr)
{
   if(i==n)
  {
     return ;
  }
  else
  {
       revs(i+1, n, arr);
       printf("%.f ", arr[i]);
  }
   return 0;
}

int main()
{
    float t[]={1,2,3,4,5,6,7,8,9};
    int n=sizeof t /sizeof t[0];
    int i=0;
    revs(0,n,t);
}
票数 0
EN

Stack Overflow用户

发布于 2020-12-16 15:10:04

看起来OP的函数inv的意图是使用递归原地反转n float值数组的元素。

在原始inv代码中,编译器会将参数声明float* t[]调整为等价于float** t。需要将其更改为float t[]或等效的float* t

在原始inv代码中,返回值要么是0,要么是对自身的递归调用的结果,只能是0。因此,返回值没有任何用处。最好将函数的返回类型更改为void

inv函数中,参数n被设置为来自main的初始调用中数组的长度。该函数在递归之前交换索引0和n处的元素的值,但索引n处没有元素。最后一个元素的索引为n-1。在递归之前,函数应该交换索引为0和n-1的元素。交换第一个和最后一个元素后,索引从1到n-2的其余n-2元素可以通过递归调用进行交换。原始inv代码在递归调用中使用值n-1,但它应该为n-2

如果n小于2,则inv函数不需要执行任何操作。

基于OP的原始代码的inv的可能实现如下:

代码语言:javascript
运行
AI代码解释
复制
void inv(float* t,int n)
{   
    float u;
    if (n>=2)
    {
        u=*t;
        *t=*(t+n-1);
        *(t+n-1)=u;
        inv(t+1,n-2));
    }
}

可以使用数组下标操作符编写相同的函数,如下所示:

代码语言:javascript
运行
AI代码解释
复制
void inv(float t[],int n)
{   
    float u;
    if (n>=2)
    {
        u=t[0];
        t[0]=t[n-1];
        t[n-1]=u;
        inv(&t[1],n-2));
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65323449

复制
相关文章
用户登录界面[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166531.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/20
3.4K0
用户登录界面[通俗易懂]
CSS——用户界面
用户界面(User Interface)属性是一些与用户界面特性相关的CSS属性。
Html5知典
2019/11/26
7390
好的用户界面-界面设计的一些技巧
如此有用的文章我已记不得是什么时候发现的了,但在看完的那一刻便想将之翻译,分享给大家自己也受用。
lyb-geek
2019/08/12
7810
好的用户界面-界面设计的一些技巧
图形用户界面入门
EasyGUI 是 Python 中一个非常简单的 GUI 编程模块,不同于其他的 GUI 生成器,它不是事件驱动的。相反,所有的 GUI 交互都是通过简地函数调用就可以实现。
清菡
2020/12/02
9500
图形用户界面入门
[javaSE] GUI(图形用户界面)
调用Frame对象的setSize()方法,设置尺寸,参数:int的宽度,int的高度
唯一Chat
2019/09/10
9120
[javaSE] GUI(图形用户界面)
模拟用户登录界面
上网过程中,我们常常会有一个账号的登录过程,本篇博客通过模拟用户登录界面以及登录过程过多时,引发的账号锁定现象。形象地变现出用户登录的详细过程。
算法与编程之美
2021/12/21
3.4K0
用户界面开发基础
Activity是Android中最核心的应用程序组件,也是大多数程序必须使用的用于显示界面的组件。
小小工匠
2021/08/16
1.8K0
CSS用户界面样式
所谓的界面样式, 就是更改一些用户操作样式, 比如 更改用户的鼠标样式, 表单轮廓以及 防止表单域拖拽等。但是比如滚动条的样式改动受到了很多浏览器的抵制,因此我们就放弃了。
星辰_大海
2020/09/30
1.9K0
后台管理系统界面_用户界面管理系统
3. FreshUI – Premium Web App and Admin Template
全栈程序员站长
2022/10/01
4.5K0
后台管理系统界面_用户界面管理系统
Android用户界面开发概述
相信通过前面15期的学习,Android的开发环境已经基本掌握了,如果仍有问题,欢迎到Android零基础入门技术讨论微信群交流,从本期开始正式来一步一步踏入Android开发之路。 Android应用开发的一项内容就是用户界面的开发。Android提供了非常丰富的用户界面组件,借助于这些用户界面组件,开发者可以非常方便地进行用户界面开发,而且可以开发出非常优秀的用户界面。 一、界面UI元素介绍 Android应用是运行于手机系统上的程序,这种程序给用户的第一印象就是用户界面。接下
分享达人秀
2018/02/02
2.5K0
Android用户界面开发概述
Elasticsearch Cerebro 用户界面介绍
Cerebro 是查看分片分配和最有用的界面之一通过图形界面执行常见的索引操作。 完全开放源,并且它允许您添加用户,密码或 LDAP 身份验证问网络界面。Cerebro 是对先前插件的部分重写,并且可以作为自运行工具使用应用程序服务器,基于 Scala 的Play 框架。
HLee
2020/12/29
1K0
Elasticsearch Cerebro 用户界面介绍
Elasticsearch: Cerebro 用户界面介绍
Cerebro 是以前的 Elasticsearch 插件 Elasticsearch Kopf 的演变(https://github.com/lmenezes/elasticsearch- kopf) – 这不适用于 Elasticsearch 版本5.x或更高版本,这是由于删除了 site plugins。
腾讯云大数据
2020/11/11
3.8K0
Elasticsearch: Cerebro 用户界面介绍
odoo 开发入门教程系列-一些用户界面
上一章,我们通过CSV文件添加了数据。当需要添加数据格式简单时,用CSV格式还是很方便的,当数据格式更复杂时(比如视图架构或者一个邮件模板),我们使用XML格式。比如包含HTML tags的 help field。虽然可以通过CSV文件加载这样的数据,但是使用XML更方便。
授客
2023/03/26
3.1K0
odoo 开发入门教程系列-一些用户界面
Pro/ENGINEER Wildfire 4.0的用户界面
Pro/ENGINEER Wildfire 4.0菜单栏位于标题栏的下面。系统将控制命令按性质分类放置于各个菜单中。
枫桦
2022/08/02
6410
Pro/ENGINEER Wildfire 4.0的用户界面
python图形用户界面(一):创建第一个GUI图形用户界面
本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。
叶子陪你玩
2020/03/19
1.7K0
python图形用户界面(一):创建第一个GUI图形用户界面
python图形用户界面(二):如何给GUI界面添加一个按钮?
本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。
叶子陪你玩
2020/03/23
2.3K0
python图形用户界面(二):如何给GUI界面添加一个按钮?
python图形用户界面(三):如何简单高效地实现GUI界面设计??
本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。
叶子陪你玩
2020/03/25
2.8K0
图形用户界面和游戏开发
GUI是图形用户界面的缩写,图形化的用户界面对使用过计算机的人来说应该都不陌生,在此也无需进行赘述。Python默认的GUI开发模块是tkinter(在Python 3以前的版本中名为Tkinter),从这个名字就可以看出它是基于Tk的,Tk是一个工具包,最初是为Tcl设计的,后来被移植到很多其他的脚本语言中,它提供了跨平台的GUI控件。当然Tk并不是最新和最好的选择,也没有功能特别强大的GUI控件,事实上,开发GUI应用并不是Python最擅长的工作,如果真的需要使用Python开发GUI应用,wxPython、PyQt、PyGTK等模块都是不错的选择。
用户8442333
2021/05/19
1.8K0
「R」Shiny:用户界面(三)布局
在我们知道如何创建一系列输入和输出控件之后,我们需要学会如何在一个页面中对它们进行排列,以达到比较好的展示效果。这正是布局函数的工作,布局函数提供了一个应用高层次的可视化结构。
王诗翔呀
2020/07/06
3.8K0
「R」Shiny:用户界面(三)布局
操作系统的用户界面
操作系统的用户界面(或称接口) 是操作系统提供给用户与计算机打交道的外部机制。用户能够借助这种机制和系统提供的手段来控制用户所在的系统。
岳泽以
2022/10/26
1.8K0
操作系统的用户界面

相似问题

渐近符号

24

渐近符号性质-证明?

13

如何证明渐近符号

20

如何将渐近函数替换为渐近符号?

18

渐近符号图的解释

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档