| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 396 人关注过本帖
标题:怎么都不明白
只看楼主 加入收藏
piggy
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-10-9
收藏
 问题点数:0 回复次数:4 
怎么都不明白

#include <stdio.h>
main()
{
char a[10];
int i,j,m,k=0;
for(i=0;i<10;i++)
{
a[i]=getchar();
if(a[i]!=10)
{
k+=1;
}
else break;

}
for (j=1;j<=k-1;j++)
{
for (i=0;i<=k-j;i++)
if (a[i]>a[i+1])
{
m=a[i];
a[i]=a[i+1];
a[i+1]=m;
}
}
for(i=0;i<k;i++)
printf("%c,a[i]);
printf("\n");
printf("\n你输入的是%d位数\n",k);
}
把红色部分改成< 输出就是正确的 为什么>不行啊 找不到错误啊

搜索更多相关主题的帖子: include 
2007-11-09 13:24
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

//--------------------//
// 整个程序就是错误 //
//----------------------------------------------------------------------------//


//----------------------------------------------------------------------------//
// 下面是我编的一个示例 //
//------------------------//

#include <stdio.h>
#include <ctype.h>
#define MAX 10

int main(void)
{
char a[MAX];
int ch;
int i, j, k;

for(k = 0; k < MAX; k++)
{
ch = getchar();

if(isalnum(ch)) /* 判断是否是数字,如果是 a[k] = ch; */
a[k] = ch;
else
break;
}

for(i = 0; i < k - 1; i++) /* 和搂主一样的排序方式 */
{
for(j = i + 1; j < k; j++)
if(a[i] > a[j])
{
ch = a[i];
a[i] = a[j];
a[j] = ch;
}
}

for(i = 0; i < k; i++)
printf("%c ", a[i]);
printf("\n");
printf("\n 你输入的是%d位数 \n", i);

getchar(); /* 可能一个无法暂停 */
return 0;
}

/* isalnum('1'); 如果是数字字符,isalnum() 返回 1, 否则返回 0 。*/



for (j=1; j<=k-1; j++) /* 第一次循环 a[i+1] 超出了数组 */
{
for (i=0;i<=k-j;i++)
if (a[i]>a[i+1])

[此贴子已经被作者于2007-11-9 14:24:08编辑过]


—>〉Sun〈<—
2007-11-09 13:38
满江风
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2007-10-30
收藏
得分:0 

怎么都不行.....

2007-11-09 13:44
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
for(i=0;i<10;i++) /* 搂主这的代码是错的 */
{
a[i]=getchar();
if(a[i]!=10)

{
k+=1;
}
else break;

}

可以使用下列代码替换:

int ch;
int k = 0

while(k < 10)
{
ch = getchar();
ch -= '0';
if(ch >= 0 && ch <= 9)
{
a[k] = ch;
k++;
}
else
break;
}

[此贴子已经被作者于2007-11-9 14:30:47编辑过]


—>〉Sun〈<—
2007-11-09 14:29
piggy
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-10-9
收藏
得分:0 
回复:(cosdos)//--------------------//// 整个程...

#include <stdio.h>
main()
{
char a[10];
int i,j,m,k=0;
for(i=0;i<10;i++)
{
a[i]=getchar();
if(a[i]!=10)
{
k+=1;
}
else break;

}
for (j=1;j<=k-1;j++)
{
for (i=0;i<=k-j;i++)
if (a[i]>a[i+1])
{
m=a[i];
a[i]=a[i+1];
a[i+1]=m;
}
}
for(i=0;i<k;i++)
printf("%c,a[i]);
printf("\n");
printf("\n你输入的是%d位数\n",k);
}
已经找到错误了 就是红色这里 把<=改成<就ok了


想飞的piggy
2007-11-10 01:42
快速回复:怎么都不明白
数据加载中...
 
   



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

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