| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 788 人关注过本帖
标题:帮忙看两个C语言代码,错哪了啊?
取消只看楼主 加入收藏
ljcbc
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:15
专家分:9
注 册:2010-4-21
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:3 
帮忙看两个C语言代码,错哪了啊?
谢谢各位帮忙啊!
这是第一个,组建时就提示错误!

程序代码:
//输入一行字符,分别统计其中英文字母,空格,数字和其它字符的个数
#include<stdio.h>
void main()
{
        char c;
        int letters=0,space=0,digit=0,other=0;
        printf("请输入一行字符:\n");
        while((c=getchar())!='\n')
        {
                if(c>='a'&&c<='z'||c>='A'&&c<='Z')
                        letters++;
                else if(c==' ')
                        space++;
                else if(c>='0'&&C<='9')
                        digit++;
                else
                        other++;
        }
        printf("该行字符中,有英文字母%d个、空格%d个、数字%d个、其他字符%d个。",letters,space,digit,other);
}


这是第二个,问题在代码中说明了!位于代码快结束处
程序代码:
//*****************************************************//
//有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出
//该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”!
//*****************************************************//
#include<stdio.h>
#include<stdlib.h>
#define N 15
void main()
{
        int a[N]={45,678,34,67,233,65,93,12,69,49,36,84,91,47,75},top,bott,mid,loca,i,j,temp,m,flag=1;
        char c='Y';
        printf("已知数组中数据从高到低排序为:\n\n");
        for(i=0;i<=(N-1);i++)                     //对数据进行降序排序存放在原数组中
        {
                for(j=0;j<(N-1)-i;j++)
                {
                        if(a[(N-1)-j-1]<a[(N-1)-j])
                        {temp=a[(N-1)-j-1];a[(N-1)-j-1]=a[(N-1)-j];a[(N-1)-j]=temp;}
                }
                printf("%d ",a[i]);
        }
        printf("\n");            
//******************以下输入一个数并进行查找**********************//
        while(flag)
        {
                printf("请输入您要查找的数m:");
                scanf("%d",&m);
                top=0;
                bott=N-1;
                if(m<a[N-1]||m>a[0])
                        loca=-1;
                for(i=0;i<(N-1)/2;i++)
                {
                        mid=(bott+top)/2;
                        if(m==a[mid])
                                {loca=mid;i=(N-1)/2;}
                        else if(m<a[mid])
                                top=mid+1;
                        else bott=mid-1;
                }
                if(loca==-1) printf("查找无此数!\n");
                        else printf("该数位于数组中第%d号位置\n",loca+1);
//****为什么****为什么****运行时为什么不暂停让用户输入'c'的值??****为什么****为什么****
                printf("是否继续,按'Y'继续,按'N'结束!\n");
                scanf("%c",&c);
//****为什么****为什么****运行时为什么不暂停让用户输入'c'的值??****为什么****为什么****
                if(c=='N'||c=='n')
                        flag=0;
        }
        system("PAUSE");        /*让程序暂停,用前得加#include<stdlib.h>*/
} 


[ 本帖最后由 ljcbc 于 2010-4-21 14:04 编辑 ]
搜索更多相关主题的帖子: C语言 代码 
2010-04-21 13:51
ljcbc
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:15
专家分:9
注 册:2010-4-21
收藏
得分:0 
回复 4楼 hanzhenddd
谢谢,我现在刚接触C语言才两星期,好多都不会!
我刚用了你改过的代码,好像如果没有找到的数程序就暂停不动了,还有我自己那代码好像我测试没有出现死循环,不知道你是说的哪啊,那确认是否的问题你那也还是一样没变化!
2010-04-21 15:41
ljcbc
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:15
专家分:9
注 册:2010-4-21
收藏
得分:0 
回复 7楼 hanzhenddd
谢谢啊,你用了参数传递吧,我现在还有点看不懂,那章节还没看
刚我运行了下,查找最后一个数678时结果错误。
还有我有的时候同一个代码,CTRL+f7后为什么有时F7成功,有时F7时1 error(s), 0 warning(s)?
2010-04-21 18:00
ljcbc
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:15
专家分:9
注 册:2010-4-21
收藏
得分:0 
回复 6楼 yousuosi202
我现在也刚自学才两星期,不知道我这么理解是不是对的。我在写时就是这么理解后用上的
\n   是C语言里的转义字符,编译系统在遇到字符"\",就接着往后找,它和后面的n一起作为一个特殊字符处理,
\n就是一个换行的意思
2010-04-21 18:06
快速回复:帮忙看两个C语言代码,错哪了啊?
数据加载中...
 
   



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

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