C语言程序设计循环结构,刚刚学

这是书上最后3题,真的不会了,好心人帮下忙,这一章学的循环结构,怎么用,求教帮写程序

第一题

#include<stdio.h>
int main()
{
    int n,i,k,a=1,s=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)//循环n次,求n个和 
    {
        for(k=1;k<=i;k++)//求阶层i! 
        {
            a=a*k; 
        }
        s=s+a;//阶层求和 
        a=1; //a重新归1 
    }
    printf("阶层和是%d\n",s);
return 0;
}

============

第二题,给出一个能输出任意层塔的函数

#include<stdio.h>
int main()
{
    int n,i,k;
    scanf("%d",&n);//读入需要输出的塔有几层 ,对于这道题可以删去,把n定义为5
    for(i=1;i<=n;i++)//循环n次,每次输出一层 
    {
        for(k=1;k<=(n-i);k++)//对于第i层,需要输出n-i个空格 
        {
        printf(" ");
        }
        for(k=1;k<2*i;k++)//对于第i层,需要输出2i-1个* 
        {
        printf("*");
        }
        printf("\n");//别忘了最后要换行 
    }
return 0;
}

===========

第三题,给出求从n到m所有素数的方法

#include<stdio.h>
#include<math.h>
int main()
{
    int n,m,a,b,c=0,i=2,s[100]/*定义一个有100个元素的素数组*/,j=-1;
    scanf("%d%d",&n,&m); 
    for(a=n;a<=m;a++)//从n到m一个个找 
    {
        for(i=2;i<a;i++)//从2到a-1,依次除a
        {
            b=a%i;
            if(b==0) c=c+1;/*c表示除1和自己以外的因数个数,如果a整除i,就给c加一个数 */ 
        } 
        if(c==0) //如果没有其他因数,就把a加到素数数组中去 
        {
            j=j+1;
            s[j]=a;
        printf("%d\n",s[j]);
        }
        else c=0;
    }
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-16

这是C++的。我也只是提供一下思想。代码可能不是很完美。但是你可以参考一下。

和C唯一不同的就是输入输出的地方。


第一题:

int n=0;
cin>>n;
double sum = 0;
for (int i=1; i<=n; ++i)
{
int m = 1;
for (int j=1; j<=i; ++j)
{
m*=j;
}
sum += m;
}
cout<<sum<<endl;

第二题:

for (int i=0; i<5; ++i)
{
int y=i;
for(; y<5; ++y)
cout<<' ';
for(int j=0; j<(2*(i+1)-1); ++j)
{
cout<<'*';
}
cout<<endl;
}

第三题:

for (int i=100; i<=200; ++i)
{
bool flag = true;
for(int j=2; j< (int)sqrt((double)i); ++j)
{
if(i%j ==0)
{
flag = false;
break;
}
}
if(flag)
cout<<i<<endl;
}

第2个回答  2014-11-16
3道全部要写吗追问

恩,都要的