用C语言编写程序,计算一个整数各位数字的和
这道题的关键在于分离数字,分离方法可以用这种方法,比如,用119来实现分离,根据题目要结果为1+1+9=11对吧,我们通过这样来分离,(1)用119%10,就是119除以10的余数是9对吧?聪明的你现在就应该发现9被分离出来了吧(2)接着分离十位数,119/10的结果只能为整数是11对吧,再用11%10,11除以10的余数为1对吧?是不是又把1分离出来了(3)最后就是百位数了,11/10的结果为1对吧,百位数也分离出来了(4)最后我们只需要吧他们相加不就完了。
分离的结束条件是当整除结果小于10时结束。
在分离过程中我们可以使用数组来存储分离出来的数。
具体代码如下:
/*方法一为递归方法解答,本人觉得此方法更简单,能理解最好*/
#include
int show(int num)
{
if(num
return num;/*递归出口*/
else
return num%10+show(num/10);
}
void main()
{
int num,sum;
printf("请输入一个整数:");
scanf("%d",&num);
sum=show(num);
printf("各位数之和的结果为:%dn",sum);
}
/*方法二用数组做的,做法可能过于复杂,不要建议,有好的方法大家分享*/
#include
void main()
{
int value[10];
int num;
printf("请输入一个整数:");
scanf("%d",&num);
while(num=10000)
{
printf("此代码暂时只支持10000以下的4位数的计算,输入整数无效!请重新输入:");
scanf("%d",&num);
}
if(num>=0&num
printf("结果为:%dn",num);
else if(num>=10&num
{
value[0]=num%10;
value[1]=num/10;
printf("结果为:%dn",value[0]+value[1]);
}
else if(num>=100&num
{
value[0]=num%10; /*分离个位数*/
value[1]=num/10; /*得出新的待分离数*/
value[2]=value[1]%10; /*分离出十位数*/
value[3]=value[1]/10; /*得到百位数*/
printf("结果为:%dn",value[0]+value[2]+value[3]);
}
else
{
value[0]=num%10; /*分离个位数*/
value[1]=num/10; /*得出新的待分离数*/
value[2]=value[1]%10; /*分离出十位数*/
value[3]=value[1]/10; /*得出新的待分离数*/
value[4]=value[3]%10; /*得出百位数*/
value[5]=value[3]/10; /*得出千位数*/
printf("结果为:%dn",value[0]+value[2]+value[4]+value[5]);
}
}
一道C语言数组的题 C高手帮忙
#include
main()
{ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; //定义了一个10个元素的数组,每个元素int类型,还定义了一个p指针.
p=a; //p指针指向数组a
printf (“%xn”,p); //输出把p的地址以十六进制显示,
printf (“%xn”,p+9);//p+9表示移动9个int类型的距离的地址之后换成十六进制显示,
}
如果你的确想打印地址,使用%p 格式就行了,默认是16进制表示,效果和%x一样,但是省去了部分操作。
若一个int类型的变量占2个字节,
第一个printf语句输出的是194,则第二个printf语句的输出结果是
这个题的意思是问你第一个元素到最后一个元素总共占了多少个字节
0x194 +2* 9=
自己算吧,懒得换算了。
194表示十六进制的数组首地址,一个Int类型占用2个字节,那么移动9个元素的距离就是2*9个字节,然后显示地址就是了。
这个深入到内存里类型的表示格式,你记住+1表示移动一个元素类型的距离就行了。
几道简单C语言编程题关于数组的感谢 !
第一题:
#include "stdio.h"
void main()
{int a[10];
int i,max;
for(i=0;i
scanf("%d,",&a[i]);
max=a[0];
for(i=1;i
{
if(max
max=a[i];
}
printf("最大值为:%d",max);
}
第二题:
#include "stdio.h"
void main()
{
int i,a[10];
long int sum; /*sum 是总分*/
float average; /*平均值*/
for(i=0;i
{
printf("请输入第%d学生的成绩:",(i+1));
scanf("%d",a[i]);
printf("n");
}
for(i=0;i
sum=sum+a[i];
average=sum/10.0;
printf("10位同学的平均成绩是:%f",average);
}
第三题:
#include "stdio.h"
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int b[10]={2,4,6,8,10,12,14,16,18,20};
int c[10];
for(i=0;i
c[i]=a[i]+b[i];
for(i=0;i
printf("%d,",c[i]);
}
第四题:
#include "stdio.h"
{
int i,a[100];
int cx;
for(i=1;i
{
a[i]=i+2;
}
scanf("输入你要查询的数值:%d",cx);
for(i=0;i
if(cx==a[i])
{
printf("第%d个数是你要查询的数值!");
break;
}
else
printf("你输入的数值不在这个数组中");
}
以上是用C语言编写程序,计算一个整数各位数字的和的详细内容。更多信息请关注PHP中文网其他相关文章!

在尝试在Windows 11上启动Valorts时,您可能会遇到“ Vanguard的这种构建不合规”问题。为什么出现错误消息?如何摆脱错误消息?来自PHP.CN的这篇文章提供了详细信息。

NVIDIA GEFORCE RTX 40系列GPU对您来说可能不是新事物。与其他顶级图形卡相比,您中的许多人可能会以可接受的价格更加关注中端主流RTX 4050。阅读PHP.CN网站的本指南以获取D

KB2267602是Windows Defender的保护或定义更新,旨在修复Windows中的漏洞和威胁。一些用户报告说他们无法安装KB2267602。这篇来自PHP.CN的帖子介绍了如何修复“ KB2267602 FAI

如果需要这样做,您知道如何重新安装Windows 11中的预安装软件吗?在这篇文章中,我们将介绍两种简单的方法。此外,如果要在Windows计算机上恢复文件,则可以尝试使用PHP.CN电源数据恢复。

进行一些更改时,Windows桌面或文件资源管理器或文件夹将自动刷新本身。但是,一些Windows 11/10用户报告说,他们遇到了“桌面和文件文件夹不会自动刷新”问题。这篇文章f

当您尝试在Windows 11/10上安装程序时,您可能无法安装它并接收错误消息 - 此Windows Installer软件包存在问题。 PHP.CN的这篇文章可帮助您修复它。

当您在设备上运行防病毒软件时,您可能希望它扫描所有文件和文件夹以获取病毒。但是,出现一个问题:防病毒扫描可以加密文件吗?该询问深入研究了安全与隐私领域。 php.cn So

如何在Windows上下载HDMI视频驱动程序?如何将HDMI驱动程序更新为最新版本。您可以在这里找到方法。此外,您可以尝试使用PHP.CN电源数据恢复,以便在必要时丢失和删除的文件。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

Atom编辑器mac版下载
最流行的的开源编辑器

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

禅工作室 13.0.1
功能强大的PHP集成开发环境

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中