主题:呵呵,我又来折腾了
梦梦学编程
[专家分:10] 发布于 2011-03-06 22:44:00
#include <stdio.h>
void main()
{ float str[100];
int i,j;
printf("请输入数字:\n");
for(i=1;?????;i++)
scanf("%f",&str[i]);
for(j=i;j>0;j--)
printf("%6.2f",str[j]);
}
我觉得爱打问号的地方加的条件是:输入的不是回车,不知道对不对;
但是我不知道怎么表达它?现在出不了结果。
回复列表 (共9个回复)
沙发
fragileeye [专家分:1990] 发布于 2011-03-06 23:04:00
lz啊,还是那句话,细心点吧……
对数组操作个人想提三点建议、、(当然不一定是lz犯错的地方)
1: 切记数组下标从 0 开始
2: 对要使用的部分,切记得初始化!
3: 千万不要越界!
这段代码的问题:
for循环跳出之后的下标i 使得str[i]未初始化
比如循环条件是i<10,跳出循环后i = 10,而j = i从10开始……
板凳
梦梦学编程 [专家分:10] 发布于 2011-03-07 13:14:00
额,讲的我不是很明白。。。。不过那几个意见我以后会注意的
3 楼
fragileeye [专家分:1990] 发布于 2011-03-07 15:44:00
这么说吧,for循环的控制语句为i<10,lz能理解跳出循环后的i =10么?而只有在for循环内部你才对str[i]初始化(即赋值),当你输出时j = i,从10开始,即开始要输出str[10],这就是问题所在了……
4 楼
梦梦学编程 [专家分:10] 发布于 2011-03-07 17:35:00
恩,这是一个错误,但是我问的还有打问号的地方应该怎么应该怎么处理?
5 楼
hereforc [专家分:210] 发布于 2011-03-07 18:45:00
你到底想表达什么 你输出的第一个str(j)根本就没有值 数组从下标0开始的
6 楼
fragileeye [专家分:1990] 发布于 2011-03-07 18:48:00
这得根据你的需要撒,既然是控制条件,当然由需要而得啊、、
7 楼
梦梦学编程 [专家分:10] 发布于 2011-03-07 23:13:00
#include <stdio.h>
void main()
{ int str[100];
int n,i,j;
printf("请输入这组数的数目:\n");
scanf("%d",&n);
printf("请输入这组数:\n");
for(i=0;i<n;i++)
scanf("%d",&str[i]);
for(j=i-1;j>=0;j--)
printf("%2d",str[j]);
}嗯嗯,我已经做出来了,换了一种方法,呵呵,谢谢你们哦
8 楼
zxctyilei [专家分:0] 发布于 2011-03-16 18:01:00
LZ建议你定义数组的大小的时候,中括号里面的那个数字尽量用宏定义吧,也就是#define方便于修改与使用
9 楼
梦梦学编程 [专家分:10] 发布于 2011-03-17 23:10:00
嗯,知道了
我来回复