精华内容
下载资源
问答
  • radon c语言 带注释

    2014-05-15 16:49:23
    radon c语言 带注释,里面有详细的注释,可以看懂,之前的都是没有注释的,但愿对大家有用!!
  • 7-45 找完数 (20分) C语言 带注释

    千次阅读 2020-04-27 00:18:19
    所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。 输入格式: 输入在一行中给出2个正整数m和n(1<...

    所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。

    输入格式:

    输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。

    输出格式:

    逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。

    输入样例:

    2 30
    

     

    输出样例:

    6 = 1 + 2 + 3
    28 = 1 + 2 + 4 + 7 + 14
    

     

    作者

    陈建海

    单位

    浙江大学

    代码长度限制

    16 KB

    时间限制

    400 ms

    内存限制

    64 MB


    编译器 (1)

    C (gcc)

    #include <stdio.h>
    int main(int argc, char *argv[])
    {
    	int m,n;
    	scanf("%d %d",&m,&n);		//不要管忘记 &
    
    	int i,j,sum,flag=0;		//flag=0,默认该区间没有完数。 
    	for(i=m;i<=n;i++){		//i从m遍历到n 
    		sum=1;		//每次累加j之前sum初始化,初始化为1是因为j循环从2起步。 
    		for(j=2;j<i;j++)	//1是所有正整数的因子,不妨从2起步。 
    			if(i%j==0)
    				sum+=j;		//累加i除自身外的因子之和。
    			
    		if(sum==i){		//如果i是完数,立flag=1,并按题目要求格式输出。 
    			flag=1;
    			printf("%d = 1",i);
    			for(j=2;j<i;j++)
    				if(i%j==0)
    					printf(" + %d",j);
    			printf("\n");
    		}
    	}
    	if(flag==0) printf("None\n");		//如果flag仍为0,输出“None”。 
    
    	return 0;
    }
    

     

    展开全文
  • Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit number con...

    Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit number consisting exactly the numbers from 1 to 9, only in a different permutation. Check to see the result if we double it again!

    Now you are suppose to check if there are more numbers with this property. That is, double a given number with k digits, you are to tell if the resulting number consists of only a permutation of the digits in the original number.

    Input Specification:

    Each input contains one test case. Each case contains one positive integer with no more than 20 digits.

    Output Specification:

    For each test case, first print in a line "Yes" if doubling the input number gives a number that consists of only a permutation of the digits in the original number, or "No" if not. Then in the next line, print the doubled number.

    Sample Input:

    1234567899
    

     

    Sample Output:

    Yes
    2469135798
    

     

    作者

    陈越

    单位

    浙江大学

    代码长度限制

    16 KB

    时间限制

    400 ms

    内存限制

    64 MB


    编译器 (1)

    C (gcc)

    #include <stdio.h>
    #define n 21 
    int main(int argc, char *argv[])
    {
    	char a[n],ch;
    	int i,len_a,b[n]={0},j,temp,flag=1;
    	
    	ch=getchar();		//输入a[n],并求len_a。不包含'\n'。 
    	for(i=0;ch!='\n';i++){
    		a[i]=ch;
    		ch=getchar();
    	}
    	len_a=i;
    //	printf("len_a=%d %s#",len_a,a);		//len_a=10 1234567899#
    	
    	for(i=0;i<len_a;i++){		//构建b[len_a+1],使b=a*2。 
    		b[i]+=(a[i]-'0')*2/10;
    		b[i+1]+=(a[i]-'0')*2%10;
    	}
    	
    	if(b[0]!=0){
    		printf("No\n");
    		for(i=0;i<len_a+1;i++)
    			printf("%d",b[i]);
    		return 0;
    	}
    	
    	int *p=&b[1],c[len_a];
    	for(i=0;i<len_a;i++)
    		c[i]=p[i];
    	
    	for(i=0;i<len_a;i++){
    		for(j=i+1;j<len_a;j++){
    			if(p[i]<p[j]){
    				temp=p[i];
    				p[i]=p[j];
    				p[j]=temp;
    			}
    			if(a[i]<a[j]){
    				ch=a[i];
    				a[i]=a[j];
    				a[j]=ch;
    			}
    		}
    		if(p[i]!=a[i]-'0'){
    			flag=0;
    			break;
    		}
    	}
    	
    	if(flag==1){
    		printf("Yes\n");
    	}else{
    		printf("No\n");
    	}
    	for(i=0;i<len_a;i++){
    		printf("%d",c[i]);
    	}
    	
    	return 0;
    }
    

     

    展开全文
  • 银行家算法 C语言实现 带注释加粗样式**** 在这里插入代码片#include <stdio.h> #define M 100 #define N 50 ///定义M个进程,N类资源 void Init(); bool checkSecurity (int); void show(); int Bank(int); ...

    银行家算法 C语言实现 带注释加粗样式****

    在这里插入代码片#include <stdio.h>
    #define M 100
    #define N 50   ///定义M个进程,N类资源
    void Init();
    bool checkSecurity (int);
    void show();
    int Bank(int);
    int Available[M];       ///可利用资源数组
    int Max[N][M];   ///最大需求矩阵
    int Allocation[N][M];  ///分配矩阵
    int Need[N][M];        ///需求矩阵
    int Request[N][M];   /**M个进程还需要N类资源的资源量*/
    bool Finish[N];
    int p[N];
    int m,n;   ///M个进程,N类资源
    int main (void)
    {
    	int i;
    	int Flag0 = 0;
    	int Flag1 = 1;
    	printf("O(∩_∩)O 您好!欢迎使用本系统! O(∩_∩)O\n");
    	Init ();
    	while(1)
    	{
    
    	printf(" 1 --> /****************银行家算法***********/\n");
    	printf(" 2 --> /****************死锁检测*************/\n") ;
    	printf(" 3 --> /****************退出本次实验*********/\n");
    	printf("   请输入相应的数字来选择你要进行的操做(注意只能输入1,2,3中的一个,否则将输出error):");
    
    	scanf("%d",&i);
    
    	/*switch(i)
    	{
    	case 1:
    		Bank(Flag0);
    		break;
    
    	case 2:
    		checkSecurity (Flag1);
    		break;
    
    	case 3:
    		C
    
    	}*/
    	if(i==1)
        {
            Bank(Flag0);
            break;
        }
        else if(i==2)
        {
            checkSecurity (Flag1);
    		break;
        }
        else if(i==3)
        {
            return 0;
        }
        else
        {
            printf("error  (输入错误 请重新输入)\n");
        }
    	}
    }
    /****************初始化算法***************************/
    void Init()
    {
    	int i,j;
    	printf ("请输入进程的数目并按回车:\n");
    	scanf ("%d",&m);
    	printf ("请输入资源的种类:\n");
    	scanf ("%d",&n);
    	printf ("请输入每个进程对资源的最大需求量,按照[%d*%d]矩阵输入(构建 Max 矩阵):\n",m,n);
    	 for (i=0;i<m;++i)
    	  {
    	  	for (j=0;j<n;++j)
    	  	 scanf ("%d",&Max[i][j]);
    	  }
    	printf ("请输入每个进程已经分配的各类资源数量,按照[%d*%d]矩阵输入(构建 Allocation 矩阵):\n",m,n);
    	  for (i=0;i<m;++i)
    	  {
    	  	for (j=0;j<n;++j)
    	  	  {
    		    scanf ("%d",&Allocation[i][j]);
    
    	       }
    	     }
    	 printf ("获得 Need 矩阵的值为:\n");
    	 {
    	 	 for (i=0;i<m;++i)
    	 	 {
    	 	 	for (j=0;j<n;++j)
    	 	 	{
    	 	 		Need[i][j] = Max[i][j]-Allocation[i][j];
    	 	 	    printf ("%d ",Need[i][j]);
    			}
    			printf ("\n");
    
    	  	    if (Need[i][j]<0)
    	       {
    			  printf ("第%d行第%d个资源错误,请重新输入:\n",i+1,j+1);
    	         j--;
    	         continue;
    		  }
    	     }
    
    	  }
    
    	printf ("请输入各类资源剩余量:\n");
    	 for (i=0;i<n;++i)
    	  scanf ("%d",&Available[i]);
    
    	printf ("进程的全部信息如下:\n");
    	printf ("进程名\tMax\t\tAllocation\tNeed\n");
    	for (int i=0;i<m;++i)
    	{
    		printf ("P%d\t",i);
    		for (int j=0;j<n;++j)
    		{
    			printf ("%d ",Max[i][j]);
    		}
    		printf ("\t");
    			for (int j=0;j<n;++j)
    		{
    			printf ("%d ",Allocation[i][j]);
    		}
    		printf ("\t");
    			for (int j=0;j<n;++j)
    		{
    			printf ("%d ",Need[i][j]);
    		}
    		printf ("\n");
    	}
    	printf ("目前可利用的资源量 Available:\n");
    	for (int i=0;i<n;i++)
    	{
    		printf ("%d ",Available[i]);
    	}
    	printf ("\n");
     }
    /*****************安全性检测算法****************/
    bool checkSecurity (int Flag)
    {
    	int i,j,k,l=0;
    	int Work[100];///可以用的资源数组;
    	for (i=0;i<n;++i)
    	{
    		Work[i] = Available[i];///赋初值
    	}
    	for (i=0;i<m;++i)
    	{
    		Finish[i]=false;///Finish 记录每个进程是否安全
        }
    
    	for (i=0;i<m;++i)
    	{
    		if (Finish[i]==true)
    		  continue;
    		else
    		 {
    			for (j=0;j<n;++j)/**循环查找第i个进程所需的各个资源数是否超过系统现有的第j个资源数*/
    	     	{
    		     	if (Need[i][j]>Work[j])/**如果第i个进程所需的第j个资源数超过系统现有的第j个资源数,则拒绝申请*/
    			 	 	break;
    		    }
    
    			if (j == n)/**如果第i个进程所需的各个资源数没有超过系统现有的资源数*/
    		 	{
    		    	Finish[i]=true;
    		    	for (k=0;k<n;++k)
    		       		Work[k]=Work[k]+Allocation[i][k];/**将第i个进程各个已分配资源数+系统有的对应资源数赋值给Work*/
    		    	p[l++]=i;
    		    	 i=-1;///记录进程号;
    	      	}
    			else ///如果超过则继续循环执行下一个过程
    		 	{
    				continue;
    			}
    		}
    
            if (Flag==0)
    		{
    			if (l == m)/**如果所有的进程都能够被满足运行时*/
    		    {
    				printf ("系统是安全的!\n");
    				printf ("安全序列为:\n");
    				for (i=0;i<l;++i)///显示资源分配给进程的顺序;
    				{
    					printf ("%d",p[i]);
    					if(i != l-1)///输出箭头
    					printf ("-->");
    				}
    				printf ("\n");
    				return true;
    			}
    			else
    			{
    			    printf ("系统是不安全的!\n");
    	            return false;
    			}
    
    		}
    		else if (Flag==1)
    		{
    			show ();
    		}
    
    
        }//for循环
    	    return 0;
    }
    /******************银行家算法的实现********************/
    int Bank(int Flag)
    {
    
       while (1)
        {
    		int mi,i;
    		printf ("请输入要申请资源的进程号:  (第一个进程号为0,第二个进程号为1,以此类推)\n");
    		scanf ("%d",&mi);
    		printf ("请输入进程所请求得各个资源的数量:\n");
    		for (i=0;i<n;++i)
    	     {
    			scanf ("%d",&Request[mi][i]);
    		 }
    		for (i=0;i<n;++i)
    		 {
    			if (Request[mi][i]>Need[mi][i])
    			 {
    				printf ("所请求的资源超过进程进程的需求量!\n");
    				return 0;
    			 }
    			if (Request[mi][i]>Available[i])
    			 {
    				printf ("所请求的资源超过系统现有的资源数!\n");
    				return 0;
    			 }
    
    		 }
    		for (i=0;i<n;++i)
    		 {
    			if ( Request[mi][i] <= Need[mi][i] && Request[mi][i] <= Available[i] )
    			 {
    				Available[i] = Available[i]-Request[mi][i];
    				Allocation[mi][i] = Allocation[mi][i]+Request[mi][i];
    				Need[mi][i] = Need[mi][i]-Request[mi][i];
    			 }
    			if (checkSecurity (Flag))
    			 {
    				printf ("同意您的分配请求!\n");
    			 }
    			else
    			 {
    				printf ("您的请求被拒绝!\n");
    				for (i=0;i<n;++i)
    				 {
    				   Available[i] = Available[i]-Request[mi][i];
    			  	   Allocation[mi][i] = Allocation[mi][i]+Request[mi][i];
    				   Need[mi][i] = Need[mi][i]-Request[mi][i];
    				 }
    			 }
    			for (i=0;i<m;i++)
    			 {
    			 	 Finish[i]=false;
    			 }
    
    			char Fl;/**设置一个标志位*/
    			printf ("是否再次请求分配?是请按Y/有,否请按N/n\n");
    			while(1)
    			 {
    				scanf ("%c\n",&Fl);
    				if (Fl == 'Y'||Fl == 'y'||Fl == 'N'||Fl == 'n')
    				 break;
    				else
    				 {
    					printf ("请重新输入:\n");
    					continue;
    				 }
    			 }
    			 if (Fl == 'Y'||Fl == 'y')
    			   continue;
    			else
    			   break;
    	 }
       }
    }
    void show()
    {
    	int i;
    	for(i=0;i<m;i++) /**当前系统可满足%d进程的需求,分配资源给该进程。进程运行结束后,系统收回该进程%d的资源。*/
    		printf("第%d步,删除进程%d的边\n",i+1,p[i]);
    	printf ("当前环境不会发生死锁!\n");
    }
    
    
    
    
    展开全文
  • ADRC带注释C语言.rar

    2020-07-21 22:14:52
    ADRC代码(C语言版本)带注释
  • <p style="text-align:center"><img alt="" height="313" src="https://img-ask.csdnimg.cn/upload/1609514591708.png" width="581" /></p> ... 就这样,我绝对挺方便的,希望c#也有</p>
  • C语言小游戏 贪吃蛇 (以排版好,带注释)。以在VC6.0编译器测试过,完美运行。
  • 电子-AES算法C语言实现源码带注释.txt,综合电子技术编程语言学习
  • MSP430 经典例程程 C语言 附带详细注释讲解,很不错的一本教程
  • 密码学经典加密算法AES算法。用C语言实现,英文注释
  • base64编码与解码C语言实现(带注释说明原理) 其中包括:base64编码接口和base64解码接口
  • #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;cmath&gt; using namespace std; double A[1010][1010]; double B[1010]; double l; int main() ......
    #include <iostream>
    #include <cstdio>
    #include <cmath>
    using namespace std;
    double A[1010][1010];
    double B[1010];
    double l;
    int main()
    {
        int n;
        printf("请输入矩阵的阶数,如想要退出请按零:\n");
        while(~scanf("%d",&n))
        {
            if(n==0)
                return 0;
            printf("请按从上到下输入矩阵:\n");
            for(int i=1; i<=n; i++)    //记录原始矩阵A;
            {
                for(int j=1; j<=n; j++)
                {
                    scanf("%lf",&A[i][j]);
                }
            }
    
           /* 由  i行 2 3 1
                  j行 2 5 6
             变为 i行 2 3 1
                  j行 0 2 5
            这一过程称为 去除第j行i因子;其中消零因子为:2/2=1*/
            (本人自己定义)
    
            for(int i=1; i<=n; i++)  //记录B;
            {
                scanf("%lf",&B[i]);
            }
            for(int i=1; i<n; i++)   //高斯消元;从第一行到n-1行;
            {
    
                for(int j=i+1; j<=n; j++)//当前消得是第j行;
                {
                    l=A[j][i]/A[i][i];     //计算消零因子;
                    for(int k=i; k<=n; k++)//消除第j行每一个数的i因子;
                    {
                        A[j][k]-=l*A[i][k];
                    }
                    B[j]-=l*B[i];   //对应的B也消去j行i因子
                }
            }
            for(int i=n; i>=1; i--) //回代求X;
            {
                for(int j=n; j>i; j--)
                {
                    B[i]-=A[i][j]*B[j];
                }
                B[i]/=A[i][i];
            }
            for(int i=1; i<=n; i++) //输出X;
            {
                printf("%f\n",B[i]);
            }
    
            printf("请输入矩阵的阶数,如想要退出请按零:\n");
    
        }
        return 0;
    }
    

     

    展开全文
  • 非常强大的C语言 写的很多程序,注释,也含有几个C语言 小游戏,很棒
  • 用windows api 做的贪吃蛇 #include #include"resource.h" #include"Node.h" #include #include TCHAR szAppname[] = TEXT("Snack_eat"); #define SIDE (x_Client/80) #define x_Client 800 #define y_Client 800 ...
  • C语言经典小程序和C语言编写的小游戏-带注释-(自动保存的).C语言经典小程序和C语言编写的小游戏-带注释
  • ```cpp //des算法...真的有点难,debug哭了 //参考博客...#include<bits/stdc++.h> using namespace std; char str[9];//输入的明文,密钥 ...//输入初始明文的二进制 int ...
  • C语言实现简易电话薄实现 cb上可以编辑 数据结构上机可用
  • 插入排序 //插入排序 void charupaixu(int inputArray[],int length){ int i,j; int thisArray[length];//用来存接受的数组,以不更改原数组 for(i = 0;i<length;... thisArray[i]= inputArray[i];...
  • MP3解码流程
  • #include &lt;stdio.h&gt; #define MAXSIZE 50 //您也可以使用 typedef 来为用户自定义的数据类型取一个新的名字。例如,您可以对结构体使用 typedef 来定义一个新的数据类型名字,然后使用这个新的数据类型...
  • C语言版数据结构,迷宫求解带注释,C源代码,可直接运行
  • C语言游戏的时候经常用到。现在分享给大家_ #include <windows.h> //包含windows.h库 void HideCursor() // 用于隐藏光标 { CONSOLE_CURSOR_INFO cursor_info = {1, 0}; // 第二个值为0表示隐藏光标 ...
  • 练习 1-23 编写一个删除C语言程序中所有的注释语句。要正确处理引号的字符串与字符常量。在C语言中,注释不允许嵌套。 代码块: #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &...
  • 贪食蛇纯C语言版的实现,wasd控制蛇的移动,如运行时墙体不是方形,将DOS窗口的属性回复为默认即可
  • 绝对经典的源代码,由浅入深,每个实例都注释和讲解,是C语言入门和提高的难得好教材,还有大多数基本算法的实现例子,无论学习还是工作都十分有用。覆盖了C语言学习的所有知识点。内有目录。已经压缩成zip格式...
  • 展开全部有多组数据,暂且以输32313133353236313431303231363533e58685e5aeb931333337383835入负数结束输入:代码如下#includeusingnamespacestd;//连续签到越长,分数越高,求最少的签到天数,适合贪心算法,多次...
  • #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; /*next 英文词的意思 是 “下一个”。...链表里 用于 指向下一个节点的指针,也就是指向下一个(节点)结构类型的指针。...struct node {} 是一种...
  • #include #include int count; //递归法实现八皇后问题 //参数row表示起始行,参数n表示列数 //参数(*chess)[8]表示指向棋盘每一行的指针 int notdanger(int row,int j,int (*chess)[8]){ ... if(*
  • 好久不写博,今天又学快排,想想自己也只是知道思想,不曾真正写过。找了个ACM题练手Hdu1106,主要是ACM的有数据,方便知道自己的对不对。 写的时间虽然久了点,但是弄出来了,还是有成就感的,没看书什么的,只凭...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 505
精华内容 202
关键字:

c语言带注释

c语言 订阅