一道c语言数组编程题 编写程序求一个整数各位数字之和。 要求: 1) 输入一个整数。 2) 把这个整数各位数字

作者&投稿:圭空 (若有异议请与网页底部的电邮联系)
一道c语言编程题,数组课后作业:编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数只和。~

#include
void main()
{
int s[20],a,n=0,i,sum=0;
printf("请输入20个整数:
");
for(i=0;i<20;i++)
{
scanf("%d",&a);
s[i]=a;
}
for(i=0;i<20;i++)
{
if(s[i]>=0)
{
n++;
sum+=s[i];
}
}
printf("非负整数的个数:%d
非负整数的和:%d
",n,sum);

}

float a[10],sum,m;
int n;
sum=0;
scanf("%d",&n);//需要注意输入的n值要小于你定义的数组的长度
for(i=0;i<n;i++)
scanf("%f",&a[i]);
for(i=0;i<n;i++)
sum=sum+a[i];
m=sum/n;
printf("%.2f",m);//%.2f中的.2就可以控制输出数保留两位小数

这道题的关键在于分离数字,分离方法可以用这种方法,比如,用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 <stdio.h>
int show(int num)
{
if(num<10)
return num;/*递归出口*/
else
return num%10+show(num/10);
}
void main()
{
int num,sum;
printf("请输入一个整数:");
scanf("%d",&num);
sum=show(num);
printf("各位数之和的结果为:%d\n",sum);
}
/*方法二用数组做的,做法可能过于复杂,不要建议,有好的方法大家分享*/
#include <stdio.h>
void main()
{
int value[10];
int num;
printf("请输入一个整数:");
scanf("%d",&num);
while(num<0||num>=10000)
{
printf("此代码暂时只支持10000以下的4位数的计算,输入整数无效!请重新输入:");
scanf("%d",&num);
}
if(num>=0&&num<10)
printf("结果为:%d\n",num);
else if(num>=10&&num<100)
{
value[0]=num%10;
value[1]=num/10;
printf("结果为:%d\n",value[0]+value[1]);
}
else if(num>=100&&num<1000)
{
value[0]=num%10; /*分离个位数*/
value[1]=num/10; /*得出新的待分离数*/
value[2]=value[1]%10; /*分离出十位数*/
value[3]=value[1]/10; /*得到百位数*/
printf("结果为:%d\n",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("结果为:%d\n",value[0]+value[2]+value[4]+value[5]);
}
}

#include"stdio.h"
#include"stdlib.h"
int main()
{
int x,sum=0,num[100];
int i=0;
printf("请输入整数:");
scanf("%d",&x);
while(x>9)
{
i++;
num[i]=x%10;//求出最后的一个位数值并进行保存,例如123,这里先保存3,在保存2,最
/后是1
sum+=x%10;//各个数位相加,从后向前加
x=x/10;//去掉最后一位
}
i++;
sum+=x;//加上第一位
for(int j=i;j>0;j++)
printf("第%d位数字是:%d\n",i-j+1,num[j]);//打印各个位数的值
printf("sum=%d\n",sum);//打印出各个位数之和
system("pause");//暂停
return 0;
}

#include <stdio.h>
int main()
{
char a[100];
int sum;
int i;

printf("input a number:\n");
gets(a);

i = 0;
while(a[i])
{
i++;
}
i--;

sum = 0;
while(i>-1)
{
sum = sum + a[i] - '0';
i--;
}

printf("sum is %d\n",sum);
return 0;
}

运行效果:
C:\Documents and Settings\Owner\桌面>test.exe
input a number:
486135
sum is 27

C:\Documents and Settings\Owner\桌面>

#include<stdio.h>
void main()
{
int x,sum=0;
printf("请输入整数:");
scanf("%d",&x);
while(x!=0)
{
sum+=x%10;
x=x/10;
}
printf("sum=%d\n",sum);
}

#include "stdio.h"
#include "stdlib.h"
int getCharCount(char *sz,char ch,int len)
{
int i = 0;
int icount =0;
for(i=0;i<len,i++)
{
if(*sz == ch)
icount = icount +1;
sz++;

}
return icount;
}
void main()
{

char sz[10]=;
int iCnt=0;
iCnt = getCharCount(sz,'a',10);

printf("a 的个数为 %d",iCnt);

getche();

}


c语言编程:有一个一维数组,内放10个学生成绩,写一个函数,求出平均分...
include<stdio.h> float aveg(int a[]);int max(int a[]);int min(int a[]);float aveg(int a[]){int i,sum=0;float av;for(i=0;i<=9;i++){ sum=sum+a[i];} printf("%d\\n",sum);av=sum\/10.00;return av;} int min(int a[]){int imin,i;imin=a[0];for(i=...

c语言编程题。 编程求数组a[10]的最大、最小和平均值。(要求用循环语句...
include <stdio.h>main(){ int i, a[10], min, max, aver; \/\/ 对数组赋初值 printf("输入10个整数:\\n"); for(i = 0; i < 10; i++) scanf("%d", &a[i]); \/\/求最大值和最小值和平均数 min = max = aver = a[0]; for(i = 1; i < 10...

C语言编程题: 将数组a中的10个整数降序排列并输出.
这个是自己输入10个整数,不想自己输的话就先给数组a赋初值,然后把下面程序里的输入语句去掉即可 include <stdio.h> void main(){ int i,j,max,temp,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++){ max=i;for(j=i+1;j<10;j++)if(a[max]<a[j])max...

C语言:一道一维数组的编程题
include<stdio.h>int main(){int a[10000],i=0,j,k,l; printf("Please input numbers:"); while(scanf("%d",&k)) { if(k==-222) break; a[i]=k; i++; } for(j=0;j<i;j++) { for(l=j+1;la[l]) { k=a[j]; a[j]=a[l...

C语言编程问题,初学者,不太会,谢谢
编写一个函数,删去输入的一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。在主函数输入一个有序数组,接着调用该自定义函数,最后输出删除重复数据后的数组元素。如:输入的数组元素为:999866000-2-2打印的结果为:9860-2 这个程序的实现...

C语言的数组编程题,求大神解答?
C语言实现从一个数组中寻找所有众数,参考代码如下:include "stdio.h”int main(){ int a[10],n,i,j,k=0;int t[10],s[10]= {0},c[10]= {0};int max;scanf("%d", &n);if(n<1||n>10)return 0;for(i=0; i<n; ++i)scanf("%d", &a[i]);for(i=0; i<n; ++i)...

c语言编程题:对于一个6×5的二维整型数组,计算各行元素之和并查找其...
include <stdio.h>int main(int argc, char const *argv[]){ int a[6][5]; int temp, kz = 0; int sum[6]; \/\/存放各行元素和 \/*输入数据*\/ for (int i = 0; i < 6; i++) for (int j = 0; j < 5; j++) scanf("%d", &a[i][j]); \/...

c语言的一道关于数组的编程题
算法:魔方阵的排列规律(奇数阵): ⑴将1放在第一行中间一列。 ⑵从2开始直到n×n止各数依次按下列规则存放:每一个数存放的行比前一个数的行数减1,列数加1。 ⑶如果上一个数的行数为1,则下一个数的行数为n,列数加1。如果上一个数的列数的n时,下一个数的列数为1,行数减1。

C语言编程题 向数组a中输入10个实型数,分别求其中正数的平均值和负数...
include "stdio.h"void main(){ int c[10],a[10],b[10],i,j=0,k=0,sum=0;printf("向数组a中输入10个实型数:");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++){ if(a[i]>=0) c[j++]=i;else b[k++]=i;} for(i=0;i<j;i++){ sum+=a[c[...

用c语言编程,声明数组a[4][4],用循环把下三角(j<=i)的值用之i×10+j...
看题目要求:声明一个4x4的数组a[4][4],你定义是a[3][3]。include <stdio.h> int main() { int a[4][4], j,i,x,y;for (i=0;i<4;i++){ for (j=0;j<4;j++)a[i][j] = 0;} for (i=1;i<4;i++) { for(j=0;j<=i;j++) { a[i][j] = i*10 + j;}...

渝中区19329977815: 一道c语言数组编程题 编写程序求一个整数各位数字之和. 要求: 1) 输入一个整数. 2) 把这个整数各位数字 -
舒管清肝: 这道题的关键在于分离数字,分离方法可以用这种方法,比如,用119来实现分离,根据题目要求结果为1+1+9=11对吧,我们通过这样来分离,(1)用119%10,就是119除以10的余数是9对吧?聪明的你现在就应该发现9被分离出来了吧(2)...

渝中区19329977815: 求c语言程序(1)编写程序,将数组中所有奇数放在另一个数组中返回. (2)输入若干有序数放在数组中求c语言程序(1)编写程序,将数组中所有奇数放在... -
舒管清肝:[答案] #include "iostream.h" // 1 奇数 int jishu(int * a,int n,int * &b) { int i = 0; for(int j=0;j{ if(a[j] & 1) //奇数 { b[i++] = a[j]; } } return i; } //2 插入 //x 待插入 ,c待插入数组,n已有个数 void charu(int x,int* &c,int n) { for(int i = 0;i{ if(xbreak; } int temp; for(int j=i;j { temp...

渝中区19329977815: 数组相关题目这是一道C语言的题目:编写程序,输入字符串,并判断该
舒管清肝: 给亮亮学长一个更简单的处理方法: #include main() { char a[100],b[100]; gets(a); strcpy(b,a); if (strcmp(strrev(a),b) == 0) printf("yes\n"); else printf("no\n"); getch(); }

渝中区19329977815: 用C语言编写一个程序,通过指针求一个数组中所有元素的和 -
舒管清肝: #include "stdio.h"void main() {int a[10];int i,count=0; printf("请输入10个数组元素: \n"); for(i=0;i<10;i++){printf("%d : ",i+1);scanf("%d",&a[i]);} for(i=0;i<10;i++)count+=*(a+i); printf("数组元素和 = %d\n",count); }

渝中区19329977815: C语言一道简单的数组编程题 编写一个程序,把1到1000放入数组中,并把能被7整除或能被11整除, -
舒管清肝: 展开全部#include main() { int i, num[1024], cot = 0; for(i = 1; i <= 1000; i++) { num[i - 1] = i;//存储 if(i % 7 == 0 || i % 11 == 0) { if(i % 77 != 0) { cot++; printf("%d ", i); if(cot == 5) { puts(""); cot = 0; } } } } }

渝中区19329977815: C语言编程:求一个数组中的平均数,数组大小为6个左右,然后输出低于这个平均数的数.万分感谢! -
舒管清肝: #include<stdio.h> int main() { const int n=6;//如果数组个数不是6的话你可以把n的大小改了 int a[6]; int sum=0; for(int i=0;i<n;i++) { scanf("%d",&a[i]); sum=sum+a[i];//输入数据并求和 } double ave=sum/n;//求平均值 用double型更好 for(i=0;i<n;i++) if(a[i]<ave) printf("%d ",a[i]);//输出小于平均值的数 printf("\n"); }

渝中区19329977815: 求用C语言编写程序(1)请编写一个函数,从键盘上输入一个数,将该数插入到一个有序的数组中,该数组仍然有序.(2)在(1)的基础上完成直接插入排序... -
舒管清肝:[答案] /*经测试,程序均正确运行,希望能帮助你*/ /******************1*****************/ #include void insert(int *arr,int n,int val) { int i; for(i=n;arr[i-1]>val && i>0;i--) arr[i]=arr[i-1]; arr[i]=val; } int main() { int arr[20]={1,3,9,11,20,24,32}; int v1=18,v2=0,v3=40; int i; ...

渝中区19329977815: 求一道C语言的题....用最少的数组写这个程序 -
舒管清肝: #include <stdio.h>void main(int argc, char *argv[]){ int a[20],num=0; int tem,isY_N=1; for(int i=0;i<=20;i++) { scanf("&d",&tem); for(j=0;j<num;j++) { if(tem==a[j]) { isY_N=0;//表示这个数已存在 break; } } if(isY_N) { a[num]=tem; num++;//添加一个新...

渝中区19329977815: 用c语言编程:在一个整型数组中求其中的最大值
舒管清肝: 程序如下: #includevoid main(){ int a[10]; int i,max; printf("输入十个数: "); for(i=0;imax) max=a[i]; } } printf("最大值是: %d ",max);} 结果如图: 有疑问提出.

渝中区19329977815: C语言一道简单的数组编程题 -
舒管清肝: //#include "stdafx.h"//vc++6.0加上这一行.#include "stdio.h" void main(void){ int a[1000],i,k; for(k=i=0;i if((a[i]=i+1)%77 && (a[i]%7==0 || a[i]%11==0)) printf(++k%5 ? "%4d" : "%4d\n",a[i]); } if(k%5) printf("\n"); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网