精华内容
下载资源
问答
  • 经典c语言算法

    2013-03-16 00:12:41
    介绍了一些经典的算法,优化程序,提高效率,清晰思路
  • c的常用算法 使你更加深入了解c语言的解题思路 应当掌握的一般算法
  • C语言算法小实例5

    2021-05-25 19:57:09
    C语言算法小实例5 1. 给定两个数字,交换两个数字的值(要求两种方法) 2. 给定3个数字,对三个数字进行排序。 思路分析: 1.交换两个数的数值,既可以借助中间变量来完成,也可以通过三个赋值表达式来完成交换数值...

    C语言算法小实例5

    1. 给定两个数字,交换两个数字的值(要求两种方法)

    2. 给定3个数字,对三个数字进行排序。

    思路分析:

    1.交换两个数的数值,既可以借助中间变量来完成,也可以通过三个赋值表达式来完成交换数值,即a = a + b; b = a - b; a = a - b;这三个式子。

    2.对于几个数的排序问题,都可以将数值储存到一个一维数组中,通过比较交换排序法来实现。

    正确代码:

    1.(1):

    #include<stdio.h>
    int main(void)
    {
    	printf("请输入两个数:\n");
    	int a, b, t;
    	while(scanf("%d%d", &a, &b)!=EOF)
    	{
    	    t = a; 
    		a = b;
    		b = t;
    		printf("%d %d\n", a, b);
    	}
    	return 0;
     } 
    

    1.(2):

    #include<stdio.h>
    int main(void)
    {
    	printf("请输入两个数:\n");
    	int a, b;
    	while(scanf("%d%d", &a, &b)!=EOF)
    	{
    	    a = a + b;
    	    b = a - b;
    	    a = a - b;
    		printf("%d %d\n", a, b);
    	}
    	return 0;
     } 
    

    2.(1):

    #include<stdio.h>
    int main(void)
    {
    	printf("请输入三个数:\n");
    	int i, j, t, str[3];
    	for(i = 0; i < 3; i++)
    	{
    		scanf("%d", &str[i]);
    	}
    	for(i = 0; i < 3; i++)
    	{
    		for(j = 0; j < 3; j++)
    		{
    			if(str[i] < str[j])
    			{
    				t = str[i];
    				str[i] = str[j];
    				str[j] = t;
    			}
    		}
    	}
    	printf("三个数由小到大排列为:\n");
    	for(i = 0; i < 3; i++)
    	{
    		printf("%d ", str[i]); 
    	}
    	return 0;
     } 
    

    运行结果:

    1.(1):
    在这里插入图片描述
    1.(2):
    在这里插入图片描述
    2.(1):
    在这里插入图片描述
    总结:
    1.对于一个题目,方法不止一个,可以从不同角度、用不同方法来解题,不要局限自己的思维,尽可能的多想、多练。
    2、对于排序,有一个经典程序段,可以进行熟练记忆。
    升序:

    for(i = 0; i < n - 1; i++)
    {
    	for(j = i + 1; j < n; j++)
    	{
    		if(str[i] > str[j])
    		{
    			int t; 
    			t = str[i];
    			str[i] = str[j];
    			str[j] = t;
    		}
    	}
    }
    

    降序:

    for(i = 0; i < n - 1; i++)
    {
    	for(j = i + 1; j < n; j++)
    	{
    		if(str[i] < str[j])
    		{
    			int t; 
    			t = str[i];
    			str[i] = str[j];
    			str[j] = t;
    		}
    	}
    }
    
    展开全文
  • C语言算法小实例4

    2021-05-15 14:38:19
    C语言算法小实例4 四. 输入任一日期,判断此年为平年还是闰年?判断为此天为此年的第几天? 要求:1. 提醒用户输入格式为 yyyy-mm-dd。 2. 输出本年为闰年还是平年。 3. 输出此日期为此年第几天。 思路分析: 判断...

    C语言算法小实例4

    四. 输入任一日期,判断此年为平年还是闰年?判断为此天为此年的第几天?

    要求:1. 提醒用户输入格式为 yyyy-mm-dd。
    2. 输出本年为闰年还是平年。
    3. 输出此日期为此年第几天。

    思路分析:

    1. 判断闰年的方法为:年份除以4后余数为0,且年份除以100后余数不为0;或者是年份除以400后余数为0,这样的年份即为闰年。
    2. 要想计算一年的第几天,月份较大时需要进行每月天数的累加,这时每个月份的天数可用二维数组储存,通过调用数组而读取每月的天数。

    正确代码:

    #include<stdio.h>
    int main(void)
    {
    	int year, month, day, i;
    	int sum = 0;
    	int date[2][13]={
    		{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
    		{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
    	};
    	printf("请输入日期:\n");
    	scanf("%d%d%d", &year, &month, &day);
    	if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
    	{
    		printf("%d年为闰年\n", year);
    		for(i = 0; i < month ; i++)
    		{
    			sum = sum + date[0][i];
    		}
    		sum = sum + day;
    		printf("%d年%d月%d日是%d年第%d天\n", year, month, day, year, sum);
    	}
    	else
    	{
    		printf("%d年为平年\n", year);
    		for(i = 0; i < month; i++)
    		{
    			sum = sum + date[1][i];
    		}
    		sum = sum + day;
    		printf("%d年%d月%d日是%d年第%d天\n", year, month, day, year, sum);
    	}
    	return 0;
     } 
    

    运行结果:

    在这里插入图片描述
    注意事项:
    1.平年有365天,闰年有366天(平年2月28天,闰年2月29天)。
    2.而且数组中应保存13个数,第一个数应为零,当输入月份为1时,第几天=0+输入日期的天数,而不应该是第几天=一月份天数+输入日期的天数。

    展开全文
  • C语言算法小实例1

    2021-04-18 10:01:01
    C语言算法小实例 一.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 思路分析:从1、2、3、4中取出三个数字随机组合,且个位、十位、百位不相同。 直接输出百位、十位和各位的数字即可 #...

    C语言算法小实例

    一.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
    思路分析:从1、2、3、4中取出三个数字随机组合,且个位、十位、百位不相同。
    直接输出百位、十位和各位的数字即可

    #include<stdio.h>
    int main()
    {
    	for(int i=1;i<=4;i++)
    	{
    		for(int j=1;j<=4;j++)
    		{
    			for(int k=1;k<=4;k++)
    			{
    				if(i!=j&&j!=k&&i!=k)
    				    printf("%d%d%d ",i,j,k);    
    			}
    		}
    	}
    	return 0;
    }
    

    缺点:
    1.数据的定义最好放在首句,有一定含义的数据尽量避免使用i、j、k,要使用自己能够看懂的标识符,例如可以用units、tens、hundreds来表示个位、十位、百位。
    2.注意规范,养成好习惯。(例如:标识符和运算符之间需要一个空格来隔开,++、–紧跟变量,标点符号后加一个空格等)
    3.if语句即便后面只有一条语句,也要加上大括号,以方便后期填码。

    #include<stdio.h>
    int main()
    {
        int units, tens, hundreds;
        
        for(hundreds = 1; hundreds <= 4; hundreds++)//循环百位数字
        {
            for(tens = 1; tens <= 4; tens++)//循环十位位数字
            {
                for(units = 1; units <= 4; units++)//循环个位数字
                {
                    if((hundreds != tens) && (hundreds != units) && (tens != units))
                    {
                        printf("%d%d%d \n", hundreds, tens, units);
                    }
                }
            }
        }
        return 0;
    }
    

    在这里插入图片描述

    展开全文
  • 【问题描述】 现有n堆球,其中n是偶数,第i堆中有 ai 个球。现需要将其中 n / 2 堆中的球数全变成完 全平方数,另外的 n / 2 全不为完全平方数。你每一次操作可以选择任意一堆增加或拿走(前 提不为 0)一个球。...
  • C语言算法小实例2

    2021-04-21 17:23:25
    C语言算法小实例 二. 企业发放的奖金根据利润提成。 利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 20万到40万之间时,...

    C语言算法小实例

    二. 企业发放的奖金根据利润提成。
    利润(I)低于或等于10万元时,奖金可提10%;
    利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
    20万到40万之间时,高于20万元的部分,可提成5%;
    40万到60万之间时高于40万元的部分,可提成3%;
    60万到100万之间时,高于60万元的部分,可提成1.5%;
    高于100万元时,超过100万元的部分按1%提成。
    从键盘输入当月利润I,求应发放奖金总数?

    思路分析:根据题意可得,该题属于分段函数,可先列出其相应的数学公式,再将其转化成C语言代码。可用if语句、if-else语句或if-else if-else语句,本题采用if-else if-else语句。

    #include<stdio.h>
    int main()
    {
    	double x,y; //x为公司当月利润,y为应发奖金总数
    	printf("输入公司的当月利润:");
    	scanf("%lf",&x);
    	if(x<=100000)
    	    y=0.1*x;
    	else if(x>100000&&x<=200000)
    	    y=10000+(x-100000)*0.075;
    	else if(x>200000&&x<=400000)
    	    y=10000+7500+(x-200000)*0.05;
    	else if(x>400000&&x<=600000)
    	    y=10000+7500+10000+(x-400000)*0.03;
    	else if(x>600000&&x<=1000000)
    	    y=10000+7500+10000+6000+(x-600000)*0.015;
    	else
    	    y=10000+7500+10000+6000+6000+(x-1000000)*0.01;
    	printf("%.2f",y); 
    	return 0;
    } 
    

    总结:
    1.要注意审题,明确奖金和利润的关系,从而列出正确的数学公式。
    2.要注意区分if语句、if-else语句或if-else if-else语句之间的区别。即
    (1)if语句:当满足条件表达式1时,执行语句1,否则,都不执行;
    (2)if-else语句:当满足条件表达式1时,执行语句1,否则,执行语句2;
    (3)if-else if-else语句:当满足条件表达式1时,执行语句1,当不满足条件表达式1时,判断是否满足条件表达式2,若满足则执行语句2,如果仍然不满足条件表达式2,则继续判断是否满足下一个条件表达式,直至最后到else语句,执行else语句所对应的语句。
    3.变量名不要用x、y、z等无代表含义的名称,最好使用具有想关含义的英文来表示变量。
    4.在本题中,如果写明单位为万元,那么代码中的许多数字便可不加那么多零了。

    #include<stdio.h>
    int main()
    {
    	double profit,bonus; //profit为公司当月利润,bonus为应发奖金总数
        printf("输入公司的当月利润:\n");
    	scanf("%lf",&profit);
    	if(profit<=10)
    	    bonus=0.1*profit;
    	else if(profit<=20)
    	    bonus=1+(profit-10)*0.075;
    	else if(profit<=40)
    	    bonus=1+0.75+(profit-20)*0.05;
    	else if(profit<=60)
    	    bonus=1+0.75+1+(profit-40)*0.03;
    	else if(profit<=100)
    	    bonus=1+0.75+1+0.6+(profit-60)*0.015;
    	else
    	    bonus=1+0.75+1+0.6+0.6+(profit-100)*0.01;
    	printf("%.2f",bonus); 
    	return 0;
    } 
    

    在这里插入图片描述

    展开全文
  • C语言算法小实例3

    2021-05-07 18:23:14
    C语言算法小实例 三. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少,计算并输出符合条件的整数?关于完全平方数的定义:若一个数能表示成某个整数的平方的形式,则称这个...
  • C语言算法实例(三)

    2021-04-22 17:30:40
    C语言算法实例(三) 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少,计算并输出符合条件的整数? 分析: 首先搞懂完全平方数的概念:若一个数能表示成某个整数的平方的...
  • 消灭星星算法思路内容 算法过程解析,消除分数计算大家可能都注意到了,一次性消除同种相邻色块越多,本次分数越多。那么究竟多多少呢?数随着数目的增加而暴涨,增长率是很恐怖的。设消除块数为 n,则本次分数为5n²...
  • Problem Description Bob is a journalist, nowadays,he has a trouble. You know ,the Olympic Games is around the corner, as a fan of athletic sports, he certainly wants to see the Olympic Games, but as ...
  • 八皇后问题的递归回溯算法思路:从第一行开始当某一行皇后位置不与前面所有皇后位置冲突那么记录该行皇后位置并调用递归函数进入下一行,摆放下一个皇后,逐个位置摆放,若该行所有位置都被其他皇后占领,那么就回溯...
  • 蓝桥杯 FJ的字符串–C语言算法 问题描述  FJ在沙盘上写了这样一些字符串:  A1 = “A”  A2 = “ABA”  A3 = “ABACABA”  A4 = “ABACABADABACABA”  … …  你能找出其中的规律并写所有的数列AN吗? 输入...
  • 由于昨天上算法课的时候实在无聊,突然想出——能不能用数组来模拟链表,于是经过我的尝试,果真成功了! 思路: 数组和单链表一样,既有数据域又有指针域,而且数组的指针域是固定指向后一个元素的。 那么,头插法...
  • C语言冒泡排序法 1.开发环境:Visual C++2010。 2.起泡法思路 3.完整代码: #include<stdio.h> #include<stdlib.h> void main() { int i,j,k,t,n=5; int a[5]; for(k=0;k<5;k++) { printf(...
  • 问题 输入三行字符串,第一行是一行字符串,第二行是第一行字符串的一个子串,第三行...根据思路设想出算法框图,再用代码加以实现即可。 代码如下: #include<stdio.h> #include<string.h> void chang...
  • 主要介绍了C语言对堆排序一个算法思路和实现代码,堆排序是一种树形选择排序,是对直接选择排序的有效改进,需要的朋友可以参考下
  • C语言算法---扑克牌排序

    千次阅读 2020-03-20 14:21:45
    文章目录扑克牌排序问题描述 :输入说明 :输出说明 :输入范例 :输出范例 :解题思路参考代码 扑克牌排序 问题描述 : 明明和他的三位同学在玩一种非常有趣的扑克牌游戏。 在这个游戏中,一副牌的大小怪被除去,然后把...
  • 二、实现思路 要插入数据s使得整个数组内存增加三倍,需要重新开辟一个新的数组NewData[4000],把新的数组按照下图所示排列寻找规律 原有数组按照纵列由上到下排序 三、程序编写 int main() ...
  • 一个N*N的矩阵,现在求一个高效![图片说明](https://img-ask.csdn.net/upload/201510/01/1443671505_40015.png)的算法。例如一个3*2的矩阵,将矩阵中某个元素的值变为他在矩阵中...谁有好的思路可以提一下么?求大神
  • 经典C语言算法题之两数组的交集

    千次阅读 2020-10-06 15:50:39
    两数组的交集1、题目描述2、题目分析3、题解代码4、题解心得 1、题目描述 给定两个数组,编写一个函数来计算它们的交集。...思路很暴力: 第一、双重for循环遍历并对比每个数组元素,缺点时间复杂度高,
  • #include #include void FCFS() { int a[9]={55,58,39,18,90,160,150,38,184}; int sit,i,j; sit=100;j=0; printf("当前磁头所在号为:100\n"); for(i=0;i;i++) printf("磁道号:%d\n",a[i]);...}
  • 初学者学习任何一门编程语言都必须要明确,重点是学习编程方法和编程思路,不是学习语法规则,语法规则是为编程实现...根据企业面试题目的要求对c语言中的常用算法进行了总结,希望能帮助大家顺利的通过企业的面试。...
  • Problem Description Now is spring ! The sunshine is warm , the flowers is coming out . How lovely it is! So my classmates and I want to go out for a spring-outing. But we all select courses ...
  • 在这儿,算法的准确性不是指算法思路是否正确,而是指算法在计算机上实际计算结果是否正确。 由于计算机中的数据是采用有限位二进制数进行存储的,所以误差是不可避免的。 所以一般来说,一个实数无法转换成与之...
  • 本文将从7道例题出发,讲述自己今天关于算法的学习 CONTEXTA - Maya Calendar问题重述输入输出解题思路源代码B - Diplomatic License问题重述问题分析源代码:C."Accordian" Patience问题重述输入输出D - Broken ...
  • Problem Description There are two kinds of people. If person i is the first kind of people, it locates at position (pi, 0) initially, starts moving at time ti with a constant velocity of (0, v1), ...
  • 打印菱形在控制台的思路是,把菱形上下拆分,分两段很接近的代码来打印, 其实这样代码很不好看,并且不好阅读 我们知道,要打印的图案是这种: * *** ***** *** * 满足上下对称,左右对称,那么,你能不能...
  • C语言经典算法大全

    2014-07-11 15:29:26
    C语言经典算法大全,里面涵盖了最基础的算法设计、思路及源码,很是适合初学算法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,866
精华内容 746
关键字:

c语言算法思路

c语言 订阅