| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 522 人关注过本帖
标题:返回值不对
取消只看楼主 加入收藏
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:8 
返回值不对
#include "stdio.h"
int main()
{
    int * cha(char* p);
    char a[100];
    int *x,i;
    x=cha(a);
    for(i=0;i<5;i++)
    printf("%d\n",x[i]);
    return 0;

}
     int *cha(char* p)
     {
         int a[5]={0,0,0,0,0};
         return a;
     }
这个返回值不是a5的值,求教
2013-01-14 16:36
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
收藏
得分:0 
着急
2013-01-14 16:38
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
收藏
得分:0 
但是第一个数字输出是正确的啊
2013-01-14 16:49
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
收藏
得分:0 

#include "stdio.h"                  //原来的程序是这样的,想统计字母等的个数的
int main()
{
    int *cha(char*p);
    char a[100];
    int i,*z;
    char *x;
    x=a;
    printf("shu ru shi fu:");
    scanf("%s",a);
    i=0;
    while (a[i]!='\0')
    {    printf("%c",a[i]);
    i++;
    }printf("\n");
    z=cha(a);
    for (i=0;i<5;i++)

    {printf("a[%d]=%d",i+1,*(z+i));
    printf("\n");}
    return 0;
}
    int *cha(char*p)
    {   
        int i,a[5]={0,0,0,0,0};
        
       printf("%s",p);
        printf("\n");
        for(i=0;p[i]!='\n';i++)
    {    if(p[i]>='0'&&p[i]<='9')a[0]++;             //这里是想用数组统计字母个数,然后返回数组首地址
        else if(p[i]>='a'&&p[i]<='z')a[1]++;
        else if(p[i]>='A'&&p[i]<='Z')a[2]++;
        else if(p[i]==' ')a[3]++;
        else a[4]++;}
   
        return a;
        
    }                                                  //这样不行吗?我是菜鸟,请教高手
2013-01-14 17:00
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
收藏
得分:0 
怎么回事呢
2013-01-14 17:04
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
收藏
得分:0 
这样吧,看看我修改的程序如下,怎么也是不对
#include "stdio.h"
int a[5]={0};
int main()
{
    void cha(char*p);
    char b[100];
    int i;
   
       printf("shu ru shi fu:");
       gets(b);
        i=0;
    while (b[i]!='\0')
    {    printf("%c",b[i]);
        i++;
    }
        printf("\n");
        cha(b);
    for (i=0;i<5;i++)

    {
        printf("b[%d]=%d",i+1,a[i]);
         printf("\n");
    }
    return 0;
}
    void cha(char*p)
    {   
        int i;
        for (i=0;p[i]!='\0';i++)
            printf("%c",p[i]);
            printf("\n");
        for(i=0;p[i]!='\n';i++)
        {
            if(p[i]>='0'&&p[i]<='9')a[0]++;
            else if(p[i]>='a'&&p[i]<='z')a[1]++;
            else if(p[i]>='A'&&p[i]<='Z')a[2]++;
            else if(p[i]==' ')a[3]++;
            else a[4]++;
        }
   

        
    }

2013-01-14 18:06
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
收藏
得分:0 
a数组是全局变量数组,怎么打印的数值还是不对
2013-01-14 18:08
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
收藏
得分:0 
是的,版主说的对,这个程序/n换成/0就对了,其他的内容没有找到
2013-01-15 10:41
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
收藏
得分:0 
楼上的,不是说了吗,\n改成\0就可以了
2013-01-18 18:17
快速回复:返回值不对
数据加载中...
 
   



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

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