
C语言数组的编程!!很简单的!!
编写程序求一个整数各位数字之和。要求:1)输入一个整数。2)把这个整数各位数字分离出来放到一维数组中。3)求一维数组各元素之和。注意:要给出至少两次的运行的输入输出结果。...
编写程序求一个整数各位数字之和。
要求:
1) 输入一个整数。
2) 把这个整数各位数字分离出来放到一维数组中。
3) 求一维数组各元素之和。
注意:要给出至少两次的运行的输入输出结果。
(要求两次输入的整数位数不同)
还要写一个简单的算法分析!和简易的流程图! 展开
要求:
1) 输入一个整数。
2) 把这个整数各位数字分离出来放到一维数组中。
3) 求一维数组各元素之和。
注意:要给出至少两次的运行的输入输出结果。
(要求两次输入的整数位数不同)
还要写一个简单的算法分析!和简易的流程图! 展开
5个回答
展开全部
#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();
}
#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()调用.
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
#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值可以变。本来最好是用链表,不过你要求用数组,就这样了
#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值可以变。本来最好是用链表,不过你要求用数组,就这样了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如三位数,312/100=3,312/(3*10)=1,312%10=2,这样就分离了,不限定数,我没想到,你自己推下
追问
T.T我不会啊。。。帮帮忙啊高人!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询