| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1730 人关注过本帖
标题:求解:用函数给数组赋值(已结)
只看楼主 加入收藏
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
求解:用函数给数组赋值(已结)
输入一个五位数,并将这个数的每一位存储在数组中并输出。


想通过函数来将每一位数赋值给数组元素,然后输出。
程序代码:
#include <stdio.h>
#include <string.h>
int some(int e,int f,int *g)
{
    g++;
    *g=e;
    for(;f<0;f--)
    {
        *g=e%10;
        e/=10;
        printf("%d\t%d\n",*g,e);
    }
    getchar();
    return 0;
}
int main()
{
    int a,b,c,d[6]={0};
    //void some(int a,int b,int *c);
    printf("请输入一个五位以内的整数:\n");
    scanf("%d",&d[0]);
    a=d[0];
    for(b=0;a!=0;)
    {
        a=a/10;
        b++;
        printf("%d\t%d\n",b,a);
    }
    a=d[0];
    if(b>5)
        printf("输入的数字有误,请重新输入\n");
    else
    {
        printf("这是一个%d位数。\n",b);
        some(a,b,d);
        for(c=0;c<6;c++)
            printf("%d\t",d[c]);
    }
    getchar();
    return 0;
}

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2019-9-15 01:25编辑过]

搜索更多相关主题的帖子: 输入 函数 int 数组 printf 
2019-09-01 22:38
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:10 
#include <stdio.h>
int some(int a, char *d)
{
    int i;
    for(i=0; a; ++i,a/=10)
        d[i] = a%10;
    return i;
}
int main()
{
    int a, n;
    char d[10]= {0};
    printf("请输入一个五位以内的整数:\n");
    scanf("%d",&a);
    n = some(a,d);
    printf("这是一个%d位数%d。\n",n,a);
    if (n > 5)
        printf("输入的数字有误,请重新输入\n");
    else
    {
        for(--n; n>=0; --n)
            printf("%d\t",d[n]);
    }
    getchar();
    return 0;
}
2019-09-02 06:21
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:0 
好的,谢谢! 通过您的解答我学到了好多。
1,自身思维有些定式,不怎么会变通。比如:是几位数的计算方法,我虽然想到是a/=10,但是没有将其整合,而是选择将其重复计算使用,使程序冗杂。
2,对基础知识没有很好的掌握。自增,只记得i++,却忘记了++i。
2019-09-02 10:04
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:0 
重新修改一下程序
程序代码:
#include <stdio.h>
#include <string.h>
int main()
{
    void some(int *);
    int d[6]={0};
    char c;
    while(1)        //判断输入数值是否正确
    {
        printf("请输入一个五位数:\n");
        scanf("%d",&d[0]);
        getchar();
        if(d[0]>99999)      
        {
            printf("输入数值有误,是否重新输入:yes?");
            b=getchar();
            if(c=='y')
            continue;
            return 0;
        }
        some(d);
        return 0;
    }
}
void some(int *p)  //用数组存储五位数的每一位,并输出显示
{
    int a,b=1;
    a=p[0];
    while(a)
    {
        *(p+b++)=a%10;
        a/=10;
    }
    printf("输入数值为:\n");
    for(b--;b>0;)
    printf("%d",*(p+b--));
getchar();
}


[此贴子已经被作者于2019-9-15 09:29编辑过]

2019-09-15 01:16
快速回复:求解:用函数给数组赋值(已结)
数据加载中...
 
   



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

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