码迷,mamicode.com
首页 > 编程语言 > 详细

C语言学习认为比较值得重视的程序

时间:2015-03-08 21:38:50      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:编程   c语言   字体   3d   密码   

  程序一:杨辉三角

#include<stdio.h>
#define N 6
int main(void)
{
    int i,j;
    int y[N][N];
    printf("\n");
    for(i=0; i<N; i++)
    {
        y[i][0]=1;
        y[i][i]=1;
    }
    for(i=2; i<N; i++)
        for(j=1; j<i; j++)
            y[i][j]=y[i-1][j-1]+y[i-1][j];//前两行生成杨辉三角
    for(i=0; i<N; i++)
    {
        for(j=0; j<=i; j++)
            printf("%5d",y[i][j]);//后面输出杨辉三角
        printf("\n");//输出后换行
    }
    return 0;
}
总结:得出了杨辉三角的规律才能编程

1
1- 1

  \ /
1- 2 -1

  \ /  \/
1 -3 -3 -1

  \ / \ /  \ /
1- 4 -6- 4 -1

   \/   \/ \/   \ /
1- 5- 10 -10 -5 -1

所谓杨辉三角就是一个三角相加的规律。


程序二:矩阵对角线之和

#include<stdio.h>
#define M 4
int main(void)//计算M行M列矩阵的对角线和的运算
{
    int a[M][M],i,j,sum=0;
    printf("Data: ");
    for(i=0; i<M; i++)
        for(j=0; j<M; j++)
            scanf("%d",&a[i][j]);
    for(i=0; i<M; i++)
        sum+=a[i][i]+a[i][M-1-i];//当M为偶数行列时的计算
    if(M%2==1)
        sum-=a[M/2][M/2];//当M为奇数行列时的计算
    for(i=0; i<M; i++)
    {
        for(j=0; j<M; j++)
            printf("%4d",a[i][j]);//输出矩阵,每4个元素换一行
        printf("\n");
    }
    printf("Sum=%d\n",sum);
    return 0;
}

总结:利用二维数组中的位置规律来编程,再不是等差关系


程序三:字符串操作函数

1.复制

#include<stdio.h>
#include<string.h>
int main(void)
{
    char c1[20]="program",c2[10]="example";
    strcpy(c1,c2);
    printf("String c1: ");
    puts(c1);
    printf("String c2: ");
    puts(c2);
    return 0;
}

2.连接

#include<stdio.h>
#include<string.h>
int main(void)
{
    char c1[20]="China",c2[10]="man";//初始化两个字符串内容
    strcat(c1,c2);//使用字符串函数作用
    printf("String c1: " );
    puts(c1);//输出已实现连接的字符串C1
    printf("String c2: ");
    puts(c2);//输出未实现的字符串C2
    return 0;
}

3.比较验证

#include<stdio.h>
#include<string.h>
#define N 3
int main(void)
{
    int count=1;
    char word[12];
    while(count++<=N)
    {
        printf("pass word: ");
        gets(word);
        if(strcmp(word,"bejing2008")==0)//密码输入不正确时就会重新输入
            break;
    }
    if(count>N+1)
        printf("sorry!\n");//输入密码超过三次就会输出该字体
        else
            printf("continue,please!\n");//正确时就继续
    return 0;
}

总结:第三个可以用以判断输入密码的正确错误


程序四:打印左右九九表

1.左对齐九九表

#include<stdio.h>
int main(void)
{
    int i,j;
    for(i=1; i<=9; i++)
    {
        for(j=1; j<=i; j++)
            printf("%1d*%1d=%-3d",i,j,i*j);
        printf("\n");
    }
    return 0;
}

2.右对齐九九表

#include<stdio.h>
int main(void)
{
    int i,j;
    for(i=1; i<=9; i++)
    {
        for(j=1; j<=i; j++)
            printf("%1d*%1d=%-3d",i,j,i*j);
        printf("\n");
    }
    return 0;
}

程序五:找出素数

#include<stdio.h>
#include<math.h>
int main(void)
{
    int i,k,sk,flag;
    for(k=100; k<=200; k++)
    {
        flag=1;//设置素数标志
        sk=sqrt(k);
        for(i=2; i<=sk; i++)
            if(k%i==0)
            {
                flag=0;//k不是素数,设置flag=0;
                break;
            }
        if(flag)
            printf("%5d",k);//如果是素数,按每行5个空格占位输出
    }
    printf("\n");
    return 0;//此程序设置就相当一个布尔常量的程序
}

总结:设置flag=1的值相当于设置为布尔常量,判断其的真假。


程序六:一维数组实现Fibonacci数列

#include<stdio.h>
int main(void)
{
    int fib[21];
    int i;
    fib[1]=1;
    fib[2]=1;
    for(i=3; i<=20; i++)
    {
        fib[i]=fib[i-1]+fib[i-2];//Fibonacci数列的公式要领
    }
    for(i=1; i<=20; i++)
    {
        printf("%-10d",fib[i]);//控制每个输出项占10列,按左对齐输出
        if(i%5==0)//每输出5个数换行
            printf("\n");
    }
    return 0;
}

程序七:字符统计

#include<stdio.h>
int main(void)
{
    int count=0;
    char ch;
    printf("Input a string:" );
    while((ch=getchar())!='\n')//琢个读入字符串的所有字符,当字符串输入为回车键时停止,统计结束;
    {
        if(ch>='a'&&ch<='z')
            count++;//符合条件时才统计
    }
    printf("%d",count);
    return 0;
}

总结:其getchar的输入就像于gets(str)





C语言学习认为比较值得重视的程序

标签:编程   c语言   字体   3d   密码   

原文地址:http://blog.csdn.net/linhaiyun_ytdx/article/details/44135961

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!