| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 623 人关注过本帖
标题:谁不怕 麻烦 啊 给分哦
只看楼主 加入收藏
没事学学
Rank: 2
等 级:论坛游民
帖 子:77
专家分:46
注 册:2013-3-28
结帖率:100%
收藏
已结贴  问题点数:40 回复次数:6 
谁不怕 麻烦 啊 给分哦
main()

{ int a[10];
  int i,*p;
  p=a;
  for(i=0;i<10;i++)
  scanf("%d",p++);
  for(i=0;i<10;i++)
  printf("a[%d]=%d" ,i,a[i]);
  getch();

}
这是给数组赋值  为什么要输完10个数 才能执行   for(i=0;i<10;i++)
  scanf("%d",p++);
  for(i=0;i<10;i++)
  printf("a[%d]=%d" ,i,a[i]);这部分我看不懂是怎么执行的 谁给说说啊 具体些 每一步 每一步  的含义 和意义  肯定 得打好些字  先谢谢了
2013-05-15 21:29
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:10 
因为for循环是十次,for(i=0;i<10;i++)
   scanf("%d",p++);在成立条件下,会执行下去,具体为什么for会循环,我也不知道。
1、scanf("%d",p++);这个是数组赋值,因为这个指针是指向这个数组的,所以可以这样写
2、for(i=0;i<10;i++)            //循环输出数组的值,%d是格式控制符,以a[1]、a[2].......这样的形式输出数组
   printf("a[%d]=%d" ,i,a[i]);

Maybe
2013-05-15 21:38
没事学学
Rank: 2
等 级:论坛游民
帖 子:77
专家分:46
注 册:2013-3-28
收藏
得分:0 
回复 2楼 邓士林
如果改成2次 不是10次     能给说说 每一步是怎么执行吗
 我说说 你看对不
 先建立2个空间 这时候 是2个空的空间  指针指向第一个 但还没有值  当输入1是 指针指向 1  输出 a[0]=1
再输入2时i已经=1了 输出a[1]=2
  我不明白for的循环  这是一下子循环完  还是 接受一个 循环一次 在接受 在循环
2013-05-15 21:59
Ryker
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:145
专家分:420
注 册:2013-2-19
收藏
得分:20 
因为循环要执行十次..所以循环内的语句也要执行十次..所以scanf要执行十次..所以要输入十个数

分开写:
for循环相当于

i = 0;
if(i < 10)
{
    scanf("%d", p);
    p++;  // p = &a[1]
    i++;  /* i = 1*/
}
if(i < 10)
{
    scanf("%d", p);
    p++;  // p = &a[2]
    i++;  /* i = 2*/
}
if(i < 10)
{
    scanf("%d", p);
    p++;  // p = &a[3]
    i++;  /* i = 3*/
}
if(i < 10)
{
    scanf("%d", p);
    p++;  // p = &a[4]
    i++;  /* i = 4*/
}
..复制十遍太长了...应该能看懂吧..
2013-05-15 22:07
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:10 
先把第一个for循环执行完后,然后才开始往下面进行下面的for循环

Maybe
2013-05-15 22:10
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
以下是引用没事学学在2013-5-15 21:59:40的发言:

如果改成2次 不是10次     能给说说 每一步是怎么执行吗
 我说说 你看对不
 先建立2个空间 这时候 是2个空的空间  指针指向第一个 但还没有值  当输入1是 指针指向 1  输出 a[0]=1
再输入2时i已经=1了 输出a[1]=2
  我不明白for的循环  这是一下子循环完  还是 接受一个 循环一次 在接受 在循环

是接受一次,再循环,然后再接受,再循环,,,

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-15 22:20
猫小喵
Rank: 2
来 自:计算机专业
等 级:论坛游民
帖 子:29
专家分:77
注 册:2013-5-12
收藏
得分:0 
回复 5楼 邓士林
scanf("%d",p++);中得p++啥意思啊,如果把楼主程序改为do while循环不能实现输入一次判断Y or N判断之后循环

做一个爱编程得女生
2013-05-15 22:21
快速回复:谁不怕 麻烦 啊 给分哦
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.064429 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved