回 帖 发 新 帖 刷新版面

主题:呵呵,我又来折腾了

#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个回复)

沙发

lz啊,还是那句话,细心点吧……
对数组操作个人想提三点建议、、(当然不一定是lz犯错的地方)
1: 切记数组下标从 0 开始
2: 对要使用的部分,切记得初始化!
3: 千万不要越界!
这段代码的问题:
for循环跳出之后的下标i 使得str[i]未初始化
比如循环条件是i<10,跳出循环后i = 10,而j = i从10开始……

板凳

额,讲的我不是很明白。。。。不过那几个意见我以后会注意的

3 楼

这么说吧,for循环的控制语句为i<10,lz能理解跳出循环后的i =10么?而只有在for循环内部你才对str[i]初始化(即赋值),当你输出时j = i,从10开始,即开始要输出str[10],这就是问题所在了……

4 楼

恩,这是一个错误,但是我问的还有打问号的地方应该怎么应该怎么处理?

5 楼

你到底想表达什么 你输出的第一个str(j)根本就没有值  数组从下标0开始的

6 楼


这得根据你的需要撒,既然是控制条件,当然由需要而得啊、、

7 楼

#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 楼

LZ建议你定义数组的大小的时候,中括号里面的那个数字尽量用宏定义吧,也就是#define方便于修改与使用

9 楼

嗯,知道了

我来回复

您尚未登录,请登录后再回复。点此登录或注册