用c语言编一个程序,要求输入一个四位数,求其各个位数之和。如输入3456书橱结果为3+4+5+6=1

用c语言编一个程序,要求输入一个四位数,求其各个位数之和。如输入3456书橱结果为3+4+5+6=18在编一个程序要求输入一个十进制数,输出该数的十六进制和八进制!求各位大神帮忙!答的好的还有额外悬赏!有效期今天晚上十点之前!!急急急!

第1个回答  2012-11-25
#include < stdio.h >
int sum4(int n)
{
int sum= 0;
sum+= n%10;//个
sum+= n/10%10;//十
sum+= n/100%10;//百
sum+= n/1000;//千
return sum;
}
int main()
{
int n;
printf("请输入一个四位数:");
scanf("%d", &n);
printf("%d:各个位数之和:%d\n\n", n, sum4(n));
printf("请输入一个数:");
scanf("%d", &n);
if(n >= 0)
{
printf("十六进制:%x\n", n);
printf("八 进 制:%o\n", n);
}
else
{
printf("十六进制:-%x\n", -n);
printf("八 进 制:-%o\n", -n);
}
}本回答被网友采纳
第2个回答  2012-11-25
//第一题:
void main()
{
int a,s=0;
scanf("%d",&a);
while(a)
{
s+=a%10;
a/=10;
}
printf("%d\n",s);
}

//第二题:
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
printf("十六进制为:%x\n",a);
printf("八进制为:%o\n",a);
}追问

第二题如果只允许输入四位数,输入其他不是四位数,运行结果就是求和而是现实error,程序要怎么改呀?

本回答被提问者采纳
第3个回答  2012-11-25
#include "stdio.h"
main ( )
{
int m;
scanf("%d",&m)
printf("%o,%x\n",m,m);
}
第4个回答  2012-11-25
//加分吧
#include<stdio.h>
void main()
{
int n,i,sum=0,count=0,data[4];
scanf("%d",&n);
while (n)
{
sum+=n%10;
data[count++]=n%10;
n/=10;
}
for(i=count-1;i>=0;i--)
if(i==0)
printf("%d=",data[i]);
else
printf("%d+",data[i]);
printf("%d\n",sum);
printf("八进制:%o\n",sum);
printf("十六进制:%x\n",sum);
}