| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5264 人关注过本帖
标题:从键盘上输入n(n<50)个任意位的正整数m(m<32767),将每个整数的各位数字之 ...
只看楼主 加入收藏
王冥刈
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-5-23
结帖率:0
收藏
 问题点数:0 回复次数:9 
从键盘上输入n(n<50)个任意位的正整数m(m<32767),将每个整数的各位数字之和存放在a数组中。要求:求每个整数k的各位数字之和用自定义函数
从键盘上输入n(n<50)个任意位的正整数m(m<32767),将每个整数的各位数字之和存放在a数组中。要求:求每个整数k的各位数字之和用自定义函数来实现。
搜索更多相关主题的帖子: 整数 之和 函数 定义 数字 
2010-05-30 23:13
hanzhenddd
Rank: 5Rank: 5
等 级:职业侠客
帖 子:90
专家分:361
注 册:2010-3-4
收藏
得分:0 
自己动手 丰衣足食 哪里不会再来请教!
2010-05-30 23:39
yuls
Rank: 2
等 级:论坛游民
帖 子:23
专家分:60
注 册:2010-5-28
收藏
得分:0 
程序代码:
#include <stdio.h>

void func(int Array[ ],int a[ ],int n)
{
    for(int i=0;i<n;i++)
    {
        int sum=0;//
        if(Array[i]>9999)
        {  
            sum+=Array[i]/10000;
            Array[i]-=(Array[i]/10000)*10000;
            sum+=Array[i]/1000;
            Array[i]-=(Array[i]/1000)*1000;
            sum+=Array[i]/100;
            Array[i]-=(Array[i]/100)*100;
            sum+=Array[i]/10;
            Array[i]-=(Array[i]/10)*10;
            sum+=Array[i];
            a[i]=sum;
        }
        else if (Array[i]>999)
        {
            sum+=Array[i]/1000;
            Array[i]-=(Array[i]/1000)*1000;
            sum+=Array[i]/100;
            Array[i]-=(Array[i]/100)*100;
            sum+=Array[i]/10;
            Array[i]-=(Array[i]/10)*10;
            sum+=Array[i];
            a[i]=sum;
        }
        else if (Array[i]>99)
        {
            sum+=Array[i]/100;
            Array[i]-=(Array[i]/100)*100;
            sum+=Array[i]/10;
            Array[i]-=(Array[i]/10)*10;
            sum+=Array[i];
            a[i]=sum;
        }
        else if (Array[i]>9)
        {
            sum+=Array[i]/10;
            Array[i]-=(Array[i]/10)*10;
            sum+=Array[i];
            a[i]=sum;
        }
        else sum=Array[i];
    }

}
void main()
{
    int n;//要输入的数的个数
    int Array[50];
    int a[50];
    printf("input how many numbers you want :  ");
        scanf("%d",&n);

    printf("please input several(<=50) numbers :\n");
    for(int i=0;i<n;i++)
        scanf("%d",&Array[i]);
    func(Array,a,n);//
    for(int i=0;i<n;i++)
        printf("the sum of Array[%d] is %d \n",i,a[i]);
}
2010-05-31 00:10
yuls
Rank: 2
等 级:论坛游民
帖 子:23
专家分:60
注 册:2010-5-28
收藏
得分:0 
不好意思 ,刚才那个 回答有点问题;

把 最后一个 else……  改正为:
  else
       a[i]=Array[i];
  
 
2010-05-31 00:22
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
#include<stdio.h>
sum(int i)
{
 int result,g,s,b,q,w;
 g=0;s=0;b=0;q=0;w=0;
 if(i<10)
 g=i;
 else if(i<100)
 {s=i/10;
  g=i-s*10;
 }
 else if(i<1000)
 {b=i/100;
  s=(i-b*100)/10;
  g=i-b*100-s*10;
 }
 else if(i<10000)
 {q=i/1000;
  b=(i-q*1000)/100;
  s=(i-q*1000-b*100)/10;
  g=i-q*1000-b*100-s*10;
 }
 else
 {w=i/10000;
  q=(i-w*10000)/1000;
  b=(i-w*10000-q*1000)/100;
  s=(i-w*10000-q*1000-b*100);
  g=i-w*10000-q*1000-b*100-s*10;
 }
 result=g+s+b+q+w;
 return(result);
}
void main()
{
 int n[50],a[50];
 int i;
 for(i=0;i<50;i++)
 {scanf("%d",&n[i]);
  a[i]=sum(n[i]);
 }
 for(i=0;i<50;i++)
 printf("%d\n",a[i]);
}

我很懒,但我讨厌别人说我懒……
2010-05-31 00:57
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
不过上面的输出格式我没好好组织下(一排竖下来50个),这样不美观,LZ自己组织一下吧……

我很懒,但我讨厌别人说我懒……
2010-05-31 00:58
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:0 
我也只能写一些我力所能及的程序,也是初学者的说

#include <stdio.h>

void func(int *ArrayA,int *ArrayB)
{
    for(int i=0;ArrayB[i]!=0;i++)
    {
        int num=0,ls=ArrayB[i];
        do
        {
            num+=ls%10;
            ls=(ls-ls%10)/10;
        }while(ls>0);
        ArrayA[i]=num;
    }
}

int main()
{
    int a[50]={0};
    int b[50]={0};
    int n=0;
    printf("input how many numbers you want(n: 1-50) : ");
    while(1)
    {
        scanf("%d",&n);
        if(n>0&&n<50)
        {
            break;
        }
        else
        {
            printf("Error!! reinput:");
        }
    }
    printf("Now input %d numbers,but you can enter 0 to end at any time:\n",n);//英语不怎么好,输入0退出

    for(int i=0,m=0;i<n;)
    {
        printf("NO.%d:",i+1);
        scanf("%d",&m);
        if(m>0&&m<32767)
        {
            b[i]=m;
            i++;
            continue;
        }
        else if(m==0)
        {
            n=i;
            break;
        }
        else
        {
            printf("Error!! reinput:");
        }
    }
    func(a,b);

    for(int j=0;j<n;j++)
    {
        printf("num%d: %d\n",j+1,a[j]);
    }
    return 0;
}
2010-05-31 02:49
明明哥8991
Rank: 1
等 级:新手上路
帖 子:17
专家分:2
注 册:2012-3-27
收藏
得分:0 
很简单
# include <stdio.h>
 int cunt(int m)
  { int s=0;
   while (m)
     {s=s+m%10;
       m=m/10;}
   return (s);
  }

void  main( )
{ int m,i,n=0,a[50],M;
printf("请输入你要输入几个数:");
scanf("%d",&M);
    for(i=0;i<M;i++)
     {scanf("%d",&m);
     if (m>0&&m<32768)
     {a[n]=cunt(m);  n++; }
     }
  
   for (i=0;i<n;i++)
     printf("%5d\n",a[i]);
}

2012-06-13 13:08
乙烯
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-14
收藏
得分:0 
#include "stdio.h"
#include "conio.h"
main()
{int n,i;
 int a[50],v[50];
 printf("你将输入多少个数:");
 scanf("%d",&n);
 printf("请输入那%d个数字:\n",n);
 for (i=0;i<n;i++)
 scanf("%d",&v[i]);
 for (i=0;i<n;i++)
 {if(v[i]>10000)
 a[i]=v[i]/10000+v[i]%10000/1000+v[i]%1000/100+v[i]%100/10+v[i]%10;
 else if(v[i]>=1000&&v[i]<=9999)
 a[i]=v[i]/1000+v[i]%1000/100+v[i]%100/10+v[i]%10;
 else if(v[i]>=100&&v[i]<=999)
 a[i]=v[i]/100+v[i]%100/10+v[i]%10;
 else if(v[i]>=10&&v[i]<=99)
 a[i]=v[i]/10+v[i]%10;
 else if(v[i]>=1&&v[i]<=9)
 a[i]=v[i]%10;}
 for (i=0;i<n;i++)
 printf("a%d=%d\t",i+1,a[i]);
}
应该很好理解
2012-06-14 11:05
C语言渣渣
Rank: 2
等 级:论坛游民
帖 子:15
专家分:38
注 册:2014-12-5
收藏
得分:0 
回复 8楼 明明哥8991
运行不出来呀
2014-12-18 14:05
快速回复:从键盘上输入n(n<50)个任意位的正整数m(m<32767),将每个整数的各位 ...
数据加载中...
 
   



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

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