爱板网论坛

查看: 161|回复: 0

[经验] C语言经典算法38-48

[复制链接]

69

主题

0

好友

598

积分

举人

Rank: 4

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 48 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2017-10-8 15:23:09 |显示全部楼层
    【程序38
    题目:求一个3*3矩阵对角线元素之和
    1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
    2.程序源代码:
    main()
    {
    float a[3][3],sum=0;
    int i,j;
    printf("please input rectangle element:\n");
    for(i=0;i<3;i++)
     for(j=0;j<3;j++)
     scanf("%f",&a[j]);
    for(i=0;i<3;i++)
     sum=sum+a;
    printf("duijiaoxian he is %6.2f",sum);
    }
    ==============================================================
    【程序39
    题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
    1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
         此元素之后的数,依次后移一个位置。
    2.程序源代码:
    main()
    {
    int a[11]={1,4,6,9,13,16,19,28,40,100};
    int temp1,temp2,number,end,i,j;
    printf("original array is:\n");
    for(i=0;i<10;i++)
     printf("%5d",a);
    printf("\n");
    printf("insert a new number:");
    scanf("%d",&number);
    end=a[9];
    if(number>end)
     a[10]=number;
    else
     {for(i=0;i<10;i++)
      { if(a>number)
       {temp1=a;
        a=number;
       for(j=i+1;j<11;j++)
       {temp2=a[j];
        a[j]=temp1;
        temp1=temp2;
       }
       break;
       }
      }
    }
    for(i=0;i<11;i++)
     printf("%6d",a);
    }
    ==============================================================
    【程序40
    题目:将一个数组逆序输出。
    1.程序分析:用第一个与最后一个交换。
    2.程序源代码:
    #define N 5
    main()
    { int a[N]={9,6,5,4,1},i,temp;
     printf("\n original array:\n");
     for(i=0;i printf("%4d",a);
     for(i=0;i {temp=a;
      a=a[N-i-1];
      a[N-i-1]=temp;
     }
    printf("\n sorted array:\n");
    for(i=0;i printf("%4d",a);
    }
    【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要
    题目:学习static定义静态变量的用法
    1.程序分析:
    2.程序源代码:
    #include "stdio.h"
    varfunc()
    {
    int var=0;
    static int static_var=0;
    printf("\40:var equal %d \n",var);
    printf("\40:static var equal %d \n",static_var);
    printf("\n");
    var++;
    static_var++;
    }
    void main()
    {int i;
    for(i=0;i<3;i++)
    varfunc();
    }
    ==============================================================
    【程序42
    题目:学习使用auto定义变量的用法
    1.程序分析:
    2.程序源代码:
    #include "stdio.h"
    main()
    {int i,num;
    num=2;
    for (i=0;i<3;i++)
    { printf("\40: The num equal %d \n",num);
    num++;
    {
    auto int num=1;
    printf("\40: The internal block num equal %d \n",num);
    num++;
    }
    }
    }
    ==============================================================
    【程序43
    题目:学习使用static的另一用法。
    1.程序分析:
    2.程序源代码:
    #include "stdio.h"
    main()
    {
    int i,num;
    num=2;
    for(i=0;i<3;i++)
    {
    printf("\40: The num equal %d \n",num);
    num++;
    {
    static int num=1;
    printf("\40:The internal block num equal %d\n",num);
    num++;
    }
    }
    }
    ==============================================================
    【程序44
    题目:学习使用external的用法。
    1.程序分析:
    2.程序源代码:
    #include "stdio.h"
    int a,b,c;
    void add()
    { int a;
    a=3;
    c=a+b;
    }
    void main()
    { a=b=4;
    add();
    printf("The value of c is equal to %d\n",c);
    }
    ==============================================================
    【程序45
    题目:学习使用register定义变量的方法。
    1.程序分析:
    2.程序源代码:
    void main()
    {
    register int i;
    int tmp=0;
    for(i=1;i<=100;i++)
    tmp+=i;
    printf("The sum is %d\n",tmp);
    }
    ==============================================================
    【程序46
    题目:宏#define命令练习(1)
    1.程序分析:
    2.程序源代码:
    #include "stdio.h"
    #define TRUE 1
    #define FALSE 0
    #define SQ(x) (x)*(x)
    void main()
    {
    int num;
    int again=1;
    printf("\40: Program will stop if input value less than 50.\n");
    while(again)
    {
    printf("\40lease input number==>");
    scanf("%d",&num);
    printf("\40:The square for this number is %d \n",SQ(num));
    if(num>=50)
    again=TRUE;
    else
    again=FALSE;
    }
    }
    ==============================================================
    【程序47
    题目:宏#define命令练习(2)
    1.程序分析:
    2.程序源代码:
    #include "stdio.h"
    #define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
    int t;\
    t=a;\
    a=b;\
    b=t;\
    }
    void main(void)
    {
    int x=10;
    int y=20;
    printf("x=%d; y=%d\n",x,y);
    exchange(x,y);
    printf("x=%d; y=%d\n",x,y);
    }
    ==============================================================
    【程序48
    题目:宏#define命令练习(3)
    1.程序分析:
    2.程序源代码:
    #define LAG >
    #define SMA <
    #define EQ ==
    #include "stdio.h"
    void main()
    { int i=10;
    int j=20;
    if(i LAG j)
    printf("\40: %d larger than %d \n",i,j);
    else if(i EQ j)
    printf("\40: %d equal to %d \n",i,j);
    else if(i SMA j)
    printf("\40:%d smaller than %d \n",i,j);
    else
    printf("\40: No such value.\n");
    }
    ==============================================================

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /1 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-12-15 01:10 , Processed in 0.265513 second(s), 9 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部