c语言:数组怎么可以改成可以带小数
5个回答
2018-06-16 · 知道合伙人互联网行家
关注
展开全部
如果我没有理解错题目意思的话,楼主是想输入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);
}
编程序前先分析下程序,然后制定好方案,分几步走,然后定义好变量,把每个变量的意义弄清楚。
其实你写的程序还是有几个问题的:
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);
}
编程序前先分析下程序,然后制定好方案,分几步走,然后定义好变量,把每个变量的意义弄清楚。
展开全部
强制类型转换,例如m=1.24,你用int(m)就可以得到1.
追问
数组赋值啊
二维数组赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double数组了解一下?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
……你是不是要开 float型的数组……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-06-15
展开全部
没办法这样子做,只能 a[0][0]用两个下标索引
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询