标题:求解:用函数给数组赋值(已结)
只看楼主
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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-496655-1-1.html




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

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