c语言:数组怎么可以改成可以带小数

 我来答
DoramiHe
2018-06-16 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25335 获赞数:59535
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
如果我没有理解错题目意思的话,楼主是想输入10个数,并且利用指针的方法,让其中最大的数和最后一个数交换,最小的数和最前面一个数交换,然后输出这个数组。

其实你写的程序还是有几个问题的:

1.直接编译会出现提示:变量i没用到。

2.如楼上所说,因为p指向的不是个字符串(或者说字符数组),所以最后并不是'\0'结尾,不能以(p!='\0')作为判断条件,改成(p!=a+10)理论上是可以的。

3.我没看懂你的max, min, max_i, min_i的意思。用我的理解,你可能是想先扫一遍所有的数,把较大(小)的那个数存在max(min)里,较大(小)数的位置存在max_i(min_i)里,那么,max_i和min_i就应该和p的类型相同即指针型以便保存指向。

4.再来是swap过程,注意下交换顺序就ok

我修改的程序如下:

#include "stdio.h"

int main(void)
{
int a[10], max, min, *max_i, *min_i, *p=a;
min_i = a;
max_i = a+9;
for(;p<a+10;p++)
scanf("%d",p);
max = min = a[0];

p=a;
while(p!=a+10)
{
if(max<*p) {max=*p; max_i=p;}
if(min>*p) {min=*p; min_i=p;}
p++;
}

p=a;
*min_i=*p; *p=min;
p=a+9;
*max_i=*p; *p=max;

for(p=a;p<a+10;p++)
printf("%d ",*p);

return(0);
}

编程序前先分析下程序,然后制定好方案,分几步走,然后定义好变量,把每个变量的意义弄清楚。
dv...9@sohu.com
2018-06-15 · TA获得超过523个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:64.5万
展开全部
强制类型转换,例如m=1.24,你用int(m)就可以得到1.
追问
数组赋值啊
二维数组赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杯具——悲剧69779c
2018-06-15 · TA获得超过1352个赞
知道大有可为答主
回答量:3003
采纳率:64%
帮助的人:510万
展开全部
double数组了解一下?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一剑出血
高粉答主

2018-06-15 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.6亿
展开全部
……你是不是要开 float型的数组……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-06-15
展开全部
没办法这样子做,只能 a[0][0]用两个下标索引
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式