LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: Snoopy

结果怎么不一样了??

[复制链接]
发表于 2003-6-11 13:17:58 | 显示全部楼层
main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
printf ("%d",a);
}
这只是打印数组首地址
而不是打印a[0]值
发表于 2003-6-11 18:37:39 | 显示全部楼层

看来楼主有些概念不太清楚

代码改成这样
main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int *b=a;
printf ("%d",a);
printf("%d",b);
}
两个printf应该是相同的输出。
a 和b 都是地址
 楼主| 发表于 2003-6-11 21:53:37 | 显示全部楼层
不是有些概念不清楚,是很多都不清楚啊,,,

而我不是不规矩,而是我看文章时,它里面这样,我就会想到那样可以吗?

我刚学嘛,,所以问题多了点,嘻嘻,,,

谢谢,,,,!!!
 楼主| 发表于 2003-6-12 09:09:48 | 显示全部楼层
main()
{
int a[11];
int i,j,t;
printf("input 10 numbers: \n");
for (i=1;i<11;i++)
        scanf("%d",&a);
printf("\n");
for(j=1;j<=9;j++)
  for(i=1;i<=10-j;i++)
    if(a>a[i+1])
     {t=a;a=a[i+1];a[i+1]=t;}
  printf("the sorted numbers :\n");
  for(i=1;i<11;i++)
     printf("%d",a);
}

[root@Snoopy hello]# ./hello
input 10 numbers:
111 222 333 444 555 666 777 888 999 000

the sorted numbers :
0111222333444555666777888999

三个0怎么变到前面只有一个0呢????
发表于 2003-6-12 09:20:54 | 显示全部楼层
数组a是整数数组,不是字符串数组,所以000当然就只是0了。还记得小学数学吗?以0开头的数字,这些0都是可以忽略的。
 楼主| 发表于 2003-6-12 09:43:23 | 显示全部楼层
那它怎么要排到前面,程序里又没有指明要排到前面???

难道它从小排起????
发表于 2003-6-12 09:53:00 | 显示全部楼层
最初由 pinksnoopy 发表
那它怎么要排到前面,程序里又没有指明要排到前面???

难道它从小排起????


对呀,后面的两个for循环就是排序嘛。兄弟看书能不能认真一点?
发表于 2003-6-12 10:07:43 | 显示全部楼层
贴代码注意缩进,看看论坛的vB码说明

  1. #include <stdio.h>

  2. #define SIZE 10
  3. #define TRUE 1
  4. #define FALSE 0

  5. int
  6. main(void) /* main应该有返回值int */
  7. {
  8.   int a[SIZE];
  9.   int i, j, t, f; /* f是控制变量,标准的冒泡排序法要的 */
  10.   
  11.   printf("input %d numbers: \n", SIZE);
  12.   for (i = 0; i < SIZE; i++) /* 数组下标从0开始 */
  13.     scanf("%d", &a[i]);
  14.   /* printf("\n"); 这句不需要,因为在输入的时候有换行了 */
  15.   
  16.   for(j = SIZE - 1; j > 0; j--){ /* 冒泡排序 */
  17.     f = FALSE;
  18.     for(i = 0; i < j; i++){
  19.       if(a[i] > a[i + 1]){
  20.         t = a[i];
  21.         a[i] = a[i + 1];
  22.         a[i + 1] = t;
  23.         f = TRUE; /* 这趟比较有交换 */
  24.       }
  25.     }
  26.     if(f == FALSE) /* 如果一趟比较后没有交换说明已经排序好了 */
  27.       break;
  28.   }
  29.   
  30.   printf("the sorted numbers :\n");
  31.   for(i = 0; i < SIZE; i++)
  32.     printf("%d, ", a[i]); /* 输出格式也要注意,好看一点 */
  33.   printf("\n");

  34.   exit(0);
  35. }
复制代码
发表于 2003-6-12 10:10:30 | 显示全部楼层
TO: pinksnoopy

I 服了 U。。。。
发表于 2003-6-12 16:45:05 | 显示全部楼层
连viper都受不了啦!
兄弟。你比我还要可爱啊。
三个0又不是字符。而是整型数。你都还要问??
连那个程序都不知道是冒泡排序。你是故意的吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表