本文目录一览:
- 1、C语言100以内所有质数,5个换行,并求和 急用,
- 2、对100个数进行求和用c语言程序编写
- 3、c语言:将100以内所有的所有的5的倍数求和并输出
- 4、用任意个1,2,5相加的和等于100,用C语言编程
- 5、C语言编程实现输入一串长度最大为100位的数字,输出各位数字相加的结果?
- 6、c语言求和 s=1+2+5+..+100
C语言100以内所有质数,5个换行,并求和 急用,
#includestdio.h
#includemath.h
int main()
{
int a[25],flag,pos=0,sum=0;//a[25]存放100以内的质数,flag为标志位,若不是质
//就赋值为0,pos记录a[25]中的下一个存储下标,sum存放质数之和。
for(int i=2;i!=101;i++)
{//循环遍历2-100的数,1不是质数
flag=1;
for(int j=0;(j!=pos)(a[j]=floor(sqrt(i)));j++)
{//根据质数判断定理:“对正整数n,如果用小于或等于根号n的所有质数去除,
//无法整除,则n为质数” ,pos之前的位置都存放了质数。
if(i%a[j]==0)
{
flag=0;
break;
}
}
if(flag||!pos)
{//此处的pos取反,用于第一个质数存入,第一个质数不满足上面的判断
a[pos]=i;
sum+=a[pos];
++pos;
}
}
//显示所有质数
for(int i=0;i!=25;i++)
{
printf("%d ",a[i]);
}
//打印和
printf("\n求得的和为:\n");
printf("%d\n",sum);
}
结果如图:
对100个数进行求和用c语言程序编写
#include stdio.h
void main() {
int arr[100],i,sum=0;
for(i=0; i100; i++) {
printf("请输入第%d个数:",i+1);
scanf("%d",arr[i]);
sum+=arr[i];
}
printf("\n总和为:%d",sum);
}
手机网页版知道看着可能会很乱,切换到电脑版就可以了。
c语言:将100以内所有的所有的5的倍数求和并输出
#includestdio.h
int main()
{
int sum=0;
int i=5;
while(i=100)
{
sum+=i;
i+=5;
}
printf("%d\n",sum);
return 0;
}
用任意个1,2,5相加的和等于100,用C语言编程
枚举太慢了,总共需要101*51*21=100000+次计算
其实 可以设计更简单的算法
for(int k=20;k=0;k--)
{
int temp=5*(20-k);
if(k%2==0)
{
for(int i=0;i=temp;i=i+2)
{
int j=(temp-i)/2;
couti'\t'j'\t'kendl;
}
}
else
{
for(int i=1;i=temp;i=i+2)
{
int j=(temp-i)/2;
couti'\t'j'\t'kendl;
}
}
}
虽然代码是枚举的几倍长,但是 计算次数 只有(0*5+2)/2+(1*5+1)/2+(2*5+2)/2+(3*5+1)/2+......+(20*5+2)/2=(11*2+10*1+210*5)/2=1082/2=541次
结果令我也感到惊讶了!!!!
C语言编程实现输入一串长度最大为100位的数字,输出各位数字相加的结果?
这个题目才用字符输入的形式,就比较方便,每次读入一个字符,把它转换为相应的数字,以后进行累加,当读到的字符是回车符的时候就结束,最后说出累加的答案
c语言求和 s=1+2+5+..+100
可以用while
#include
main()
{
int
sum=0;
int
i=1,n=1;
while(i=100)//因为要相加最后一个数是100,所以循环到这里
{
sum=sum+i;
i=i+n;
n=n+2;//因为1、3、5……每个数都相差2,所以加2
}
printf("%d",sum);
getch();
}