标题:第一个for语句中的变量j为什莫没有自加呢?
只看楼主
applegrape02
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-3-21
 问题点数:0 回复次数:4 
第一个for语句中的变量j为什莫没有自加呢?

#include<stdio.h>
//#include<conio.h>
void main()
{
long tmpdec,decnum[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
char string[31]="11234abc4560ef3d2fa33cd234ed8c";
int i,k,j=0;
// clrscr();
for(i=0;i<31;i++)
{
if(string[i]<='0' && string[i]<='9')
{

decnum[j]=decnum[j]*10+(string[i]-0x30);

++j;

}
else
{
if(decnum[j]!=0)
++j;
}
continue;
}

for(i=0;i<j;i++)
{
for(k=0;k<j-1;k++)

{
if(decnum[k]>decnum[k+1])
{
tmpdec=decnum[k];
decnum[k]=decnum[k+1];
decnum[k+1]=tmpdec;

}
}
}
for(i=0;i<j;i++)
printf("%1d\n",decnum[i]);
}

搜索更多相关主题的帖子: 变量 语句 include void continue 
2007-04-02 23:31
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
得分:0 
以下是引用applegrape02在2007-4-2 23:31:13的发言:

#include<stdio.h>
//#include<conio.h>
void main()
{
long tmpdec,decnum[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
char string[31]="11234abc4560ef3d2fa33cd234ed8c";
int i,k,j=0;
// clrscr();
for(i=0;i<31;i++)
{
if(string[i]<='0' && string[i]<='9')
{

decnum[j]=decnum[j]*10+(string[i]-0x30);

++j;

}
else
{
if(decnum[j]!=0)
++j;
}
continue; 这干啥! 好象多余了哦! (LZ四川人?)
}

for(i=0;i<j;i++)
{
for(k=0;k<j-1;k++)

{
if(decnum[k]>decnum[k+1])
{
tmpdec=decnum[k];
decnum[k]=decnum[k+1];
decnum[k+1]=tmpdec;

}
}
}
for(i=0;i<j;i++)
printf("%1d\n",decnum[i]);
}


 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-04-02 23:36
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
得分:0 

j++只执行了一次。
string[i]<='0' && string[i]<='9'
这个语句似乎有些问题
既然都小于'0'也就当然小于'9'
因为string[31]中的所有元素中只有string[11]<=0,故j++,j=1
而decnum[1]=0所以不执行其后面的j++
对于如下语句
for(i=0;i<j;i++)
{
for(k=0;k<j-1;k++){
if(decnum[k]>decnum[k+1])
{
tmpdec=decnum[k];
decnum[k]=decnum[k+1];
decnum[k+1]=tmpdec;}
}
}因为j=1,最外层循环执行一次,而里面的一次都不执行


麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2007-04-03 13:04
applegrape02
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-3-21
得分:0 

谢谢各位了。
问题我以解决

2007-04-03 15:45
cotwin
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-12-21
得分:0 
有个问题.j=1的话
for(i=0;i<j;i++)
printf("%1d\n",decnum[i]);
应该只显示decnum[0]的值啊.为什么还显示decnum[1]呢?
2007-04-03 17:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-128792-1-1.html




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

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