| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 612 人关注过本帖
标题:c程序的问题求改错
只看楼主 加入收藏
亚梦000
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2011-10-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
c程序的问题求改错
#include <stdio.h>
#include<string.h>
void proc(char *a,int n)
{
    int i,j,p,b=0;
    char *t;
    p=strlen(a);
    while(*t=='*')
    {
        b++;
        t++;
    }
    while(b>n)
    {
        for (i=b-n+1;i<p;i++)
        {
           a[j]=a[b-n+1];
        }
        a[j]='\0';
    }
}
void main()
{
    char str[81];int m;
    printf("Enter a string:\n");
    gets(str);
    printf("Enter m");
    scanf("%d",&m);
    proc(str,m);
    printf("The string sfter deleted:\n");
    puts(str);
}
为什么我的程序提出错误是主函数必须返回int型。子程序的错误在哪,为什么?
搜索更多相关主题的帖子: str void include Enter c程序 
2012-01-28 11:57
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
子程序中t没有赋初值。你的编译器不认void main。我强调过很多次了,很多人还是没这个意识。main函数的标准型应该返回int,这个所有编译器都是认的。

重剑无锋,大巧不工
2012-01-28 12:10
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:3 
你的那个被调函数里面j没赋值.

算法,数据结构,windows核心编程.
2012-01-29 19:20
旭日孤帆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:180
注 册:2012-1-3
收藏
得分:3 
#include <stdio.h>
#include<string.h>
void proc(char *a,int n)
{
    int i,j,p,b=0;
    char *t;
    p=strlen(a);
    while(*t=='*')                 *t没有指向任何地方,它再怎么加也不会等于*的ASCII,除非科幻片了
    {
        b++;
        t++;
    }
    while(b>n)
    {
        for (i=b-n+1;i<p;i++)
        {
           a[j]=a[b-n+1];                  a[j]指的是字符数组里第几个元素呀      我有点晕,你这个for循环到底想干嘛呀  
       }
        a[j]='\0';
    }
}
void main()
{
    char str[81];int m;
    printf("Enter a string:\n");
    gets(str);
    printf("Enter m");
    scanf("%d",&m);
    proc(str,m);
    printf("The string sfter deleted:\n");
    puts(str);
}




你能不能把题目也贴出来呀,越看你的程序,我越觉得自己无能!!!!
2012-01-29 21:52
回首依依
Rank: 7Rank: 7Rank: 7
来 自:苏州
等 级:黑侠
威 望:1
帖 子:193
专家分:524
注 册:2011-12-3
收藏
得分:3 
#include <stdio.h>
 #include<string.h>
 void proc(char *a,int n)
 {
     int i,j,p,b=0;
     char *t;          /*t没有指向,应该是:t=a;*/
     p=strlen(a);
     while(*t=='*')     /* '*'我猜是结束符号吧 */
     {
         b++;
         t++;
     }
     while(b>n)
     {
         for (i=b-n+1;i<p;i++)
         {
            a[j]=a[b-n+1];           /*j应该给个初值0,还少一句j++吧*/
         }
         a[j]='\0';
     }
 }
 void main()                            /*应该改为int main()*/
 {
     char str[81];int m;
     printf("Enter a string:\n");
     gets(str);
     printf("Enter m");
     scanf("%d",&m);
     proc(str,m);
     printf("The string sfter deleted:\n");
     puts(str);
 }
/*这段代码的功能应该是输出第M个字符以后的所有字符吧*/
 
2012-01-29 23:58
吴小君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:198
注 册:2012-1-2
收藏
得分:3 
回复 5楼 回首依依
解释得超级好啦

小弟学习C语言刚入门,请大侠们多多指教,不吝赐解!
2012-01-30 22:12
laoguanfy
Rank: 1
等 级:新手上路
帖 子:5
专家分:8
注 册:2010-7-17
收藏
得分:3 
void main()                            /*应该改为int main()*/
{
     char str[81];int m;
     printf("Enter a string:\n");
     gets(str);
     printf("Enter m");
     scanf("%d",&m);
     proc(str,m);
     printf("The string sfter deleted:\n");
     puts(str);
   /*此处再加个返回值吧*/
}

这个是玩修改错误呢?
2012-02-01 11:09
yxiangyxiang
Rank: 3Rank: 3
来 自:/\/\/\/\/
等 级:论坛游侠
帖 子:130
专家分:186
注 册:2012-1-29
收藏
得分:3 
#include <stdio.h>
main()
{
    char    str[100], *p;
    int    m;
    printf("Pleasr input str:");
    gets( str );
    printf("Please number m:");
    scanf("%d", &m);
    p = str;
    p += m;
    printf("jie guo shi:%s", p);
}
2012-02-01 17:04
快速回复:c程序的问题求改错
数据加载中...
 
   



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

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