C语言数组的编程!!很简单的!!

编写程序求一个整数各位数字之和。要求:1)输入一个整数。2)把这个整数各位数字分离出来放到一维数组中。3)求一维数组各元素之和。注意:要给出至少两次的运行的输入输出结果。... 编写程序求一个整数各位数字之和。
要求:
1) 输入一个整数。
2) 把这个整数各位数字分离出来放到一维数组中。
3) 求一维数组各元素之和。

注意:要给出至少两次的运行的输入输出结果。
(要求两次输入的整数位数不同)
还要写一个简单的算法分析!和简易的流程图!
展开
 我来答
爱枫的景
2011-05-09 · TA获得超过117个赞
知道答主
回答量:44
采纳率:0%
帮助的人:55.9万
展开全部
#include<stdio.h>
#include<math.h>
void Calculation()
{
int a[10];
int i,j,num,sum,t,k;
t=1;
sum=0;
printf("Please enter an integer:\n");
scanf("%d",&num);
j=(int)(log10(num)+1);
k=j;
while(k>1)
{
t=t*10;
k--;
}
for(i=j;i>0;i--)
{

a[i-1]=num/t;
num=num-a[i-1]*t;
t/=10;
sum+=a[i-1];
}
printf("sum is:%d\n",sum);

}
void main()
{
int i;
for(i=0;i<2;i++)
Calculation();
}
追问
可以把分离开的那一步显示出来吗?附带还有简单的程序结构分析!谢谢!!!
追答
分离开的程序代码:
j=(int)(log10(num)+1); /*求出整数num的位数j*/
k=j;
while(k>1)  /*得到10的j次方t*/
{
t=t*10;
k--;
}
for(i=j;i>0;i--)
{

a[i-1]=num/t; /*得到整数的最高位*/
num=num-a[i-1]*t;  /*减掉最高位数,比如543-5*100得到43*/
t/=10;
sum+=a[i-1];  /*将各位数累加起来*/
}
这些代码是包含Calculation()涵数中的,最后通过主涵数main()调用.
沧海雄风2009
2011-05-09 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2713万
展开全部
#include<stdio.h>
#include <string.h>

int main()
{
int S=0,L=0,i=0;
char a[10];

gets(a);

L=strlen(a);

for (i=0;i<=L;i++)
{
S+=a[i];
}
printf("各个位数之和为:%d\n",S);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ggg12345ggggg
2011-05-09
知道答主
回答量:26
采纳率:0%
帮助的人:24.7万
展开全部
#include<stdio.h>
#include<math.h>
void main()
{
int a[10],b,c,j,i=0,sum=0;
scanf("%d",&b);
while(b>0)
{
c=b%10;
b=floor(b/10);

a[i]=c;
i++;

}
for(j=0;j<i;j++)
{
printf("%d\n",a[j]);
sum=sum+a[j];
}
printf("sum=%d\n",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-05-09
展开全部
#include <stdio.h>

#define MAX 10

void calculate()
{
int num[MAX];
int size;
scanf("%d", &size);

int i = 0;
while (size > 0)
{
num[i] = size%10;
size = size/10;
i++;
}

int sum = 0;
for (int j = i; j > 0; j--)
{
printf("%d ", num[j-1]);
sum += num[j-1];
}
printf("\n");
printf("sum is %d.\n", sum);
}

void main(void)
{
for (int i = 0; i < 2; i++)
{
calculate();
}
}
MAX值可以变。本来最好是用链表,不过你要求用数组,就这样了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户89885
2011-05-09 · 超过11用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:50.3万
展开全部
比如三位数,312/100=3,312/(3*10)=1,312%10=2,这样就分离了,不限定数,我没想到,你自己推下
追问
T.T我不会啊。。。帮帮忙啊高人!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式