回首往昔,初学编程那会写过的两段愚蠢代码
  BFbkpSjOcvWq 2023年11月02日 50 0


一、关于判断两个整数是否能整除的GW BASIC创意代码

记得上大学时第一个编程语言是BASIC,当时Visual Basic还没出世,QBASIC虽然已经在1991年随MS-DOS5.0推出了,但我们使用的还是 GW-BASIC, 使用的教材是谭浩强、田淑清编著的《BASIC语言》。

回首往昔,初学编程那会写过的两段愚蠢代码_C语言

有一次的作业是判断一个数是否能被另一个数整除。

当时对BASIC的取模运算(运算符是MOD)不是很熟悉,但BASIC有 除法运算(运算符是 /)和整除运算(运算符是 \),于是我就编写了下面的代码:

input " Please enter two integer: " ; a, b
if a/b = a\b then
   print a;" is divisible by ";b
else
   print a;" isn't divisible by ";b

记得程序运行时的输出结果是正确的。

 关于GW-BASIC语言名称里的“GW”的含义,有几种说法。Greg Whitten是微软早期的一名员工,他说,比尔·盖茨选择了GW-BASIC这个名字。Whitten将其称为Gee-Whiz BASIC,并不确定盖茨是否以他的名字命名了该程序。Microsoft Press的Microsoft用户手册也使用此名称来指代它。它也可能被昵称为Gee-Whiz,因为它有大量的图形命令。其它说法还有“图形和视窗”(graph and windows)、“盖茨-威廉”(微软当时的总裁)或“盖茨-惠顿”(该程序的两个主要设计者)。

二、用数组解决约瑟夫环问题C语言代码

约瑟夫环问题的具体描述是:设有编号为1,2,……,n的n个(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,才从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,知道剩余1个人为止。当任意给定n和m后,设计算法求n个人出圈的次序。

这是《数据结构》课程里的经典问题了。使用数组来实现的话,最快的是使用取余算法得出圈的数组元素下标。不过我当时写的代码是真是一个个数了……

#include <stdio.h>
#include <string.h>
int main()
 {
     int m = 3;
     int n = 7;//数组长度
     int a[7] = {1,2,3,4,5,6,7};
     int i = 0;
     int j;
     int k;

     printf("出圈顺序为:");

     while (n > 1)
     {
        //数数
	    for (k=0; k < m; k++)
        {
	       if (i == n)
	       {
	           i = 0;
	       }
	       else
	       {
	           i++;
		   }
  	    }

        //输出出列的数字
        printf("%d ",a[i]);

        //数组元素前移
        for (j = i+1; j < n; j++)
        {
            a[j-1] = a[j];
        }

        n--; //数组长度-1

	    if (i == n)
	    {
	         i = 0;
	    }
     }

     //输出出列的数字
     printf("%d ",a[i]);

     return 0;
 }
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
BFbkpSjOcvWq