注册 登录
编程论坛 C++教室

新手关于数组录入的问题

david830_wu 发布于 2008-06-22 14:11, 634 次点击
自学C++不久,遇到一些问题,上论坛求各位的指教:
书上有如此例子:
Q:用起泡法对10个数排序。
A:#include<stdio.h>
void main()
{
 int a[10];
 int i,j,t;
 printf("input 10 numbers:\n");
 for(i=10;i<10;i++)       //问题就是这里了//
  scanf("%d",&a[i]);
 printf("\n");
 for (j=0;j<9;j++)
  for (i=0;i<9-j;i++)
   if(a[i]>a[i+1])
   {
     t=a[i];
     a[i]=a[i+1];
     a[i+1]=t;
   }
   printf("the sorted numbers :\n");
   for(i=0;i<10;i++)
    printf("%d ",a[i]);
 printf("\n");
}
书上的运行结果如下:
input 10 numbers:
1 0 4 8 12 65 -76 100 -45 123

the sorted numbers:
-76 -45 0 1 4 8 12 65 100 123
但是在Turbo C++平台上实测:根本没有给输入数组的机会,而直接输出结果:
input 10 numbers:

the sorted numbers:
-32577 -28668 -92 0 504 1248 1254 1254 3118 12934
请问高手是怎么一回事,更好的程序应是怎样的?
 谢谢对初学者的支持 万分感谢!

[[it] 本帖最后由 david830_wu 于 2008-6-22 14:18 编辑 [/it]]
3 回复
#2
守鹤2008-06-22 15:09
仔细看看程序,for(i=10;i<10;i++)       //问题就是这里了//
                scanf("%d",&a[i]);

应该从数组的第0位开始吧

for(i=0;i<10;i++)
#3
david830_wu2008-06-22 15:22
回复 2# 守鹤 的帖子
谢谢你!这样的问题烦劳大哥,实在对不住了!
#4
sjz_zdf2008-06-22 18:56
C++中支持printf和scanf,但是看着别扭,为什么不用I/O呢?
1