
C语言
对于C语言的算法和归纳,以及个人理解
り少年当自强@
攀登者
展开
-
三个数的大小排列
题目:输入三个整数x,y,z,请把这三个数由小到大输出。第一种:把各种大小情况分别讨论int main(){ int x, y, z; printf("请输入x,y,z:\n"); scanf("%d,%d,%d",&x,&y,&z); if (z>x&&x>y) printf("从小到大为:%d %d %d",y,x,z); else if(z>y&&y>x)printf("从小到大为:%d %原创 2021-01-12 19:24:05 · 11264 阅读 · 1 评论 -
C语言判断某年的第几天
题目:输入某年某月某日,判断这一天是这一年的第几天?分析:先根据平年写出一般情况,再根据闰年和平年的不同来增添。int main(){ int year; //年份 int month; //月份 int day; //日份 int sum = 0; //日份总和 printf("请输入年月日:"); scanf_s("%d,%d,%d",&year,&m原创 2021-01-11 13:04:17 · 478 阅读 · 0 评论 -
C语言特定平方数
题目:一个整数,它加上200后是一个完全平方数,再加上360又是一个完全平方数,请问该数是多少?分析:注意数据类型和方法。int main(){ long int x; //x,y用于暂存开方的数据 long int y; long int i=0; while(1) { //通过遍历寻找可能值 x = sqrt(i + 200); y = sqrt(i+360); if (x*x == i + 200&&a原创 2021-01-11 12:33:51 · 401 阅读 · 0 评论 -
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,求应发放奖金总数?分析:考虑发放奖金的数据类型和结构int原创 2021-01-11 11:56:17 · 1800 阅读 · 0 评论 -
三位数的排列组合排列
有0、1、2、3、4、5、6、7、8、9 十个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?分析:可以先写出所有的排列组合,然后排除不符合条件的组合。int main(){ int count = 0; for (int i=1;i<=9;i++) { for (int j = 0; j <= 9; j++) { for (int z = 0; z <= 9; z++) { if (i!=j&&j!=z&&i!=原创 2021-01-10 17:57:27 · 5076 阅读 · 0 评论 -
C语言求一定范围内的完数
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.例如:编程找出1~1000以内的所有完数。#include <stdio.h>int main(int argc, char **argv) { printf("完数有:\n"); for(int i=1;i<=1000;i++){ int s=0; for(int j=1;j<i;j++){ if(i%j==0){原创 2020-11-14 09:51:56 · 2739 阅读 · 0 评论 -
C语言计算a+aa+aaa+aaaa+aa...a的值
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加可以用键盘控制。其中的a可以输入。#include <stdio.h>int main(int argc, char **argv) { int n,a,s=0,t; scanf("%d",&n);//n表示要计算的个数 scanf("%d",&a); t=a; for(int i原创 2020-11-14 09:30:06 · 4823 阅读 · 0 评论 -
C语言判断鞍点
鞍点:在一个矩阵中,有一个数在该行最大,但在该列最小,这样的数即为鞍点。举个简单的例子:判断有无鞍点,如果有,输出有鞍点;如果没有鞍点,即输出没有鞍点。#include <stdio.h>int main(int argc, char **argv) { int f[3][3],g[3],max=0,count=0,hang,lie,y=0; for(int i=0;i<3;i++){ for(int j=0;j<3;j++){原创 2020-11-13 16:22:29 · 1961 阅读 · 0 评论 -
C语言条件运算符的应用
条件运算符是一种简便的判断语句,优点简洁明了,但有一定的局限性,当多个条件同时出现时,条件运算符可能并不直观,这时可以用if的嵌套和while来表示。下面举个例子:学习成绩>=90分的同学用等级A来表示,60-89分之间的用等级B来表示,60分以下的用等级C来表示。...原创 2020-11-03 16:12:15 · 1111 阅读 · 1 评论 -
C语言判断某区间的素数
给定一个区间,判断该区间的素数个数,且输出这些素数。例如,判断101-200之间有多少个素数,并输出所有素数。#include <stdio.h>#include <math.h>int main(int argc, char **argv) { int m,count=0; for(int i=101;i<=200;i++){ m=0; for(int j=2;j<=sqrt(i);j++){原创 2020-11-03 09:10:54 · 3778 阅读 · 0 评论 -
用C语言求水仙花数
打印出所有的“水仙花数”:“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。#include <stdio.h>int main(int argc, char **argv) { int a,b,c; printf("水仙花数:\n"); for(int i=100;i<1000;i++){ a=i/100; b=(i/10)%10原创 2020-11-01 17:25:17 · 823 阅读 · 1 评论 -
用C语言简单求斐波那契数列
斐波那契数列1,1,2,3,5,8,13,21....#include <stdio.h>int main(int argc, char **argv) { int f=1,g=1; for(int i=1;i<20;i++){ printf("%d\n",f); printf("%d\n",g); f=f+g; g=f+g; }}原创 2020-11-01 16:39:45 · 1320 阅读 · 0 评论 -
C语言用数组求方阵对角线的和
输入一个M行M列的二维数组,分别计算两条对角线元素的和。并分别输出两条对角线的和和对角线的和。#include <stdio.h>#define M 3 //M的值可以修改int main(int argc, char **argv) { int f[M][M],sum=0,count=0; //sum表示主对角线元素的和,count表示副对角线元素的和 for(int i=0;i<M;i++){ for原创 2020-10-29 13:09:26 · 5003 阅读 · 3 评论 -
C语言数组四周和
输入一个M行M列的二维数组,计算四周的元素之和,且要求#define M 5思路:用外圈的大方阵减去里边小的方阵即为所求四周元素和。#include <stdio.h>#define M 5int main(int argc, char **argv) { int f[M][M],sum=0,count=0; for(int i=0;i<M;i++){ //求外圈大方阵的和 for(int j=0;j<M;j++){原创 2020-10-29 12:48:18 · 1407 阅读 · 0 评论 -
C语言判断对称矩阵
输入一个M*M的矩阵,判断该矩阵是否为对称矩阵,并输出判断结果。分析:核心是转置矩阵和原矩阵相应位置的值是否相等。#include <stdio.h>#define M 3int main(int argc, char **argv) { int f[M][M], g[M][M], t = 0; for(int i = 0; i < M; i++) { for(int j = 0; j < M; j++) { sc原创 2020-10-29 12:40:38 · 9479 阅读 · 2 评论 -
C语言break语句和continue语句的用法与区别
在c语言设计程序过程中,终止某个程序和跳过某个程序就相当重要。下面我就通过简单的例子来解释一下continue和break的用法break的用法:终止内部的循环程序,但是只能终止所在的最内层的循环。例如:#include <stdio.h>int main(int argc, char **argv) { int f[]={13,21,34,47,83,81,10,12}; for(int i=0;i<=7;i++){ if(f[i]==1.原创 2020-10-27 17:21:29 · 606 阅读 · 0 评论 -
C语言数组打分问题
评委打分问题,输入10个评委打的分数,去掉最高分和最低分,剩下的分取平均分作为选手的分数,请用数组的方式来解决这个问题,输出选手的分数。分析:这道题首先涉及到对于数组的元素排序,和算法的优化。#include <stdio.h>int main(int argc, char **argv) { int f[10],flag=0,t,sum=0,a; printf("请输入评分:"); for(int i=0;i<10;i++){ s...原创 2020-10-27 16:06:29 · 2781 阅读 · 0 评论 -
C语言数组的逆序
有一个一维数组包含10个元素,编写程序将其值重新存放,即第一个元素与最后一个交换位置,第二个与倒数第二个交换位置,以此类推,输出逆序前和逆序后的结果。其中的数组可以包含更多的元素,其实,设计这种逆序问题主要是分析问题,观察逆序的核心在哪。就这道题而言,总共有10个元素,第一个与最后一个交换,第二个与倒数第二个交换,所以可以得第一个元素的下标和倒数第一个元素的下标和为确定的数,所以这道题就解决了。在这里插入代码片#include <stdio.h>int main(int argc, cha原创 2020-10-27 15:49:34 · 5331 阅读 · 0 评论 -
C语言数组统计评分问题
有N个学生被邀请给自助餐厅打分(1~10等级,1表示最低分,10表示最高分),统计调查结果,并用*打印如下形式的统计结果立方图。输出形式类似如下:Grade Count Histogram1 2 **2 3 ***3 1 *.#include <stdio.h>int main(int argc, char *原创 2020-10-26 12:28:36 · 922 阅读 · 0 评论 -
通俗的认识C语言的基本结构
利用输入的两个数做加减乘除来简单的认识一般的C语言及结构举个简单的例子#include <stdio.h> /预处理命令/int main() { /定义主函数,计算两个数的加减乘除/int a; /定义一个整型变量/int b; /定义一个整型变量/scanf("%d,%d",&a,&b); /输入a和b的值/if(原创 2020-10-25 22:21:27 · 317 阅读 · 0 评论