• C语言:对%的一些用法


    1.元素移动

    题目:编写函数move将数组a(共有M个元素)中元素向左循环移位n次

    源代码

    void move(int a[],int m,int n)
    {
        int b[m],i;
        for(i=0;i<m;i++) b[(i+m-n)%m]=a[i];
        for(i=0;i<m;i++) a[i]=b[i];
    }

    反思:如题目向右循环位移n次,代码又将如何改变?

    代码如下

    void move(int a[],int m,int n)
    {
        int b[m],i;
        for(i=0;i<m;i++) b[(i+n)%m]=a[i];
        for(i=0;i<m;i++) a[i]=b[i];
    }

    2.凯撒加密

    题目:为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个正整数k,用凯撒密码将其加密后输出。恺撒密码是一种简单的替换加密技术,将明文中的所有字母都在字母表上向后偏移k位后被替换成密文。 例如,当偏移量k是2时,表示所有的字母被向后移动 2 位后的字母替换,即所有的字母 A 将被替换成C,字母 B 将变为 D,…,字母 X 变成 Z,字母 Y 则变为 A,字母 Z 变为 B

    源代码

    #include<stdio.h>
    int main()
    {
        char a[80],*str=a;
        int i;
        gets(str);
        scanf("%d",&i);
        while(*str)
        {
            if(*str>='A'&&*str<='Z') *str=((*str-'A')+i)%26+'A';
            if(*str>='a'&&*str<='z') *str=((*str-'a')+i)%26+'a';
            str++;
        }
         printf("%s",a);
         printf("
    ");
        return 0;
    }

    总结:从以上两个例子中,可以体会到C语言%在一些“循环”中的秒解,也希望能给你们带来一丝感悟。

  • 相关阅读:
    数据库范式
    将DBF,XLS,XML,MDB文件导入C#DataGrid的方法
    在类文件中引用Server对象
    在使用了母版页的页面里加载css和js文件
    IIS 7.5 URL重写参数
    hdu Can you solve this equation?
    hdu Dome of Circus
    hdu Bone Collector
    hdu Turn the corner
    hdu 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
  • 原文地址:https://www.cnblogs.com/fcw245838813/p/12866429.html
Copyright © 2020-2023  润新知