循环结构程序设计代码示例

来源:互联网 发布:em算法例子 编辑:程序博客网 时间:2024/06/04 23:36

1、输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

#include<stdio.h>int main(){    char c;    int letters=0,space=0,digit=0,other=0;    printf("请输入一行字符:\n");    while((c=getchar())!='\n')    {    if(c>='a'&&c<='z'||c>='A'&&c<='Z')         letters++;         else if(c==' ')             space++;         else if(c>='0'&&c<='9')             digit++;    else         other++;    }    printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n",letters,space,digit,other);    return 0;}

2、用for 语句求1 到100中是 3的倍数的数的和。

#include <stdio.h>int main(){    int i,sum=0;    for(i=1;i<=100 ; i++)    {        if(i%3==0)          {            sum=sum+i;          }    }    printf("%d\n",sum);    return 0;}

3、求 + ,其中n1、n2、k1、k2键盘输入,输错重输(如:n1>n2),k1>k2同上

#include <stdio.h>     int main(){    int n1,n2,k1,k2;    int s1=0,s2=0,sum,m,n;    int i,j;    printf("Please inut 4 number:\n");    scanf("%d %d %d %d",&n1,&n2,&k1,&k2);   while(n1>n2 || k1>k2)                // 体现输错重输   {    printf("Please input again!!\n");    scanf("%d %d %d %d",&n1,&n2,&k1,&k2);}   for(j=n1;j<=n2;j++)    s1=s1+(2*j*j);    m=1;    for(i=1;i<=k1-1;i++)        m=m*i;        for(i=k1;i<=k2;i++)       {           m=m*i;           if(i%2==0)  n=1;           else        n=-1;           s2=s2+n*m;   }   sum=s1+s2;   printf("sum=%d",sum);   return 0;}

4、略…
5、找出5000以内的所有完数。完数是指一个数是它的所有因子的和。

#include<stdio.h>int main(){    int m,s,i;    printf("它的所有完数是:\n");    for(m=2;m<5000;m++)    {        s=0;        for(i=1;i<m;i++)        if((m%i)==0)        s=s+i;        if(s==m)        {            printf("%d,Ta de yin zi:",m);            for(i=1;i<m;i++)            if(m%i==0)            printf("%d",i);printf("\n");            }           }}

6、任意输入10个数,分别算出其中负数和正数的个数。

#include<stdio.h>int main(){     int i,p,n;    int f[10];    double x;    printf("please input any ten number:\n");    p=n=0;    for(i=0;i<10;i++)    {        scanf("%d",&f[i]);        if(f[i]>0)        p++;        else if(f[i]<0)        n++;    }        printf("目前有%d正数%d个负数%d个零\n",p,n,10-p-n);}

7、键盘输入字符串,遇‘#’结束,分别统计字母、数字和其它字符个数。

#include<stdio.h>int main(){     char c;    int cha,num,other;    cha=num=other=0;    printf("please input any character:\n");    while((c=getchar())!='#')       {        if(c>='0'&&c<='9')            num++;        else          if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))            cha++;          else            other++;       }        printf("shuzi:%d\nzimu:%d\nother:%d\n",num,cha,other);}

8、计算1-100内所有含有6的数的和。

#include<stdio.h>int main(){    int i,sum=0;    for(i=1;i<=100;i++)    {        if((i%10==6)||(i/10==6))        {            sum=sum+i;         }    }    printf("%d\n",sum);} 

9、输出所有3位水仙花数。所谓水仙花数是指所有位的数字的立方和等于该数。例:153=13+53+33。

#include<stdio.h>int main(){    int i,j,k,n;    printf("水仙花数字有\n");    for(n=100;n<1000;n++)    {        i=n/100;        j=n/10-i*10;        k=n%10;       if(n==i*i*i+j*j*j+k*k*k)         printf("%d\n",n);    } printf("\n");   return 0;}

10、观察数列,输出其前10项,每4个数一行,每个数占8列。
2 ,2, 4, 4, 6, 6, 8…

#include<stdio.h>#define N 20int main(){    int i,j,sum=0;    for(i=0;i<=N/2;i++)    {        sum=sum+2;    for(j=0;j<2;j++)    {        printf("%8d",sum);    }    if(i%2!=0)    printf("\n");    }     printf("\n");}

9,编写程序输出下面图形。
1
2 3
4 5 6
7 8 9 0

#include <stdio.h>int main(){    int nums[10]={1,2,3,4,5,6,7,8,9,0};     int i,j,k=0;    for(i=1;i<5;i++)       {         for(j=0;j<i;j++)            printf("%d",nums[k++]);            printf("\n");       } }