| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1759 人关注过本帖
标题:[求助4]指针,给我点头绪
只看楼主 加入收藏
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 
以下是引用wtyj112在2007-7-31 10:15:24的发言:

不用循环数组
只要一个数组 用一个while语句两个if语句就搞定。
我的代码如下 是20个学生数到3就出队列。
#include <stdio.h>

void main ()
{
int stu[20] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19};
int cout = 0;
int cout1 = 3;
int *p = &stu[2];
int pu;

while ( cout <= 20 )
{
if ( cout1 == 3 )
{
cout1 = 0;
pu = p-stu;
printf (" %d ", stu[pu]);
stu[pu] = -1;
}
p = &stu[( ( ( p - stu ) + 1 ) % 20 )];
if (*p != -1)
{
cout = 0;
cout1++;
}
else cout++;
}

}

************************
if (*p != -1)
{
cout = 0;
cout1++;
}
else cout++;
}
***********cout++是什么哇


2007-08-01 15:15
gzhsea
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-1
收藏
得分:0 
以下是引用a8451727在2007-8-1 15:15:54的发言:

************************
if (*p != -1)
{
cout = 0;
cout1++;
}
else cout++;
}
***********cout++是什么哇

赋值后加一


2007-08-01 17:04
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 

cout 就是用来纪录 已经出数组的空位个数,在我程序里用-1来表示空位,当空位到21的时候就结束程序


计算机之路是痛苦并快乐着的!!
2007-08-01 17:27
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 

我加点注释 cout就是总长 cout1就是步长


计算机之路是痛苦并快乐着的!!
2007-08-01 17:47
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 

原先给的代码有个地方有点累赘 总看 不舒服 就改了下 顺便加点注释

#include <stdio.h>

void main ()
{
int stu[20] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19};
int cout = 0; //总长
int cout1 = 3; //步长
int *p = &stu[2];

while ( cout <= 20 ) //全部数据出数组了 程序结束
{
if ( cout1 == 3 ) //每次指针移动三个非空位置后 就出列一个
{
cout1 = 0;
printf (" %d ", *p);
*p = -1;
}
p = &stu[( ( ( p - stu ) + 1 ) % 20 )]; //指针向循环数组后移动一位
if (*p != -1) //记录指针移动跳动了的非空位置数
{
cout = 0;
cout1++;
}
else cout++; // 记录指针移动了的空位置数目。
}

}


计算机之路是痛苦并快乐着的!!
2007-08-01 17:57
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 

果然都高手,我学了几天C++,还不知道什么是:“循环数组,双向循环链表、

baidu google:约瑟夫环”

伤感啊……
学无止境啊……
埋头苦学去了……


2007-08-01 18:54
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 

越看自己的代码 越不爽 发现很多地方不好就改了下 cout改成了每从数组中出一个数就自减一次
这样代码更好阅读 程序速度也比原来快点,思路也更清晰了。。
我太菜了 写的代码 经不起细敲
#include <stdio.h>

void main ()
{
int stu[20] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19};
int cout = 20, cout1 = 3, *p = &stu[2];

while ( cout >= 1 )
{
if ( cout1 == 3 )
{
cout1 = 0;
printf (" %d ", *p);
*p = -1;
cout--;
}
p = &stu[( ( ( p - stu ) + 1 ) % 20 )];
if (*p != -1)
cout1++;
}

}


计算机之路是痛苦并快乐着的!!
2007-08-01 20:29
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 
以下是引用wtyj112在2007-8-1 20:29:43的发言:

越看自己的代码 越不爽 发现很多地方不好就改了下 cout改成了每从数组中出一个数就自减一次
这样代码更好阅读 程序速度也比原来快点,思路也更清晰了。。
我太菜了 写的代码 经不起细敲


也不错了啊,比我牛多了。

2007-08-01 23:01
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 
先多谢大家,我看下哪看不懂再请教

2007-08-01 23:04
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

那个...站成一圈..用下标求模不就O了? ..
index=count%round...


女侠,约吗?
2007-08-02 00:12
快速回复:[求助4]指针,给我点头绪
数据加载中...
 
   



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

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