From 64c9075950bef06b8c5a9a6cfd68c3424f51d776 Mon Sep 17 00:00:00 2001
From: zhangzc 编写一个递归函数和一个非递归函数,分别实现求1+2+3+...+n 代码如下,如有帮助,请采纳一下,谢谢。 根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的周长和三角的类型 分别统计一个字符串中出现小写字母、大写字母、数字和空格的个数。\n输入格式:\n在一行中输入长度不超过40的字符串。\n输出格式:\n第一行中输出“小写字母=x“ 第二行中输出“大写字母=y“ 第三行中输出“数字=z” 第四行中输出“空格=m” 所有结果均原样输出,没有列宽控制。 输入样例: 输出样例: 对每个字符做判断就可以了。 如有帮助往采纳。点击我回答右上角【采纳】按钮。 一公司有10名员工,每位员工的信息包括;员工编号,姓名,工资;要求编写函数实现:\n1.输入10名员工的信息。\n2.输出平均工资及所有工资高于平均工资的职工的姓名。\n呜呜呜是老师布置的作业,要用c语言编写,可是俺啥也不会,sos,希望能有人帮忙_(:3 ⌒゙)_ 小林和小树兄弟俩相约存零钱。眼看到年底了,兄弟俩决定算算一共存了多少钱,请帮他们算出来。 输入: 两行,第一行三个整数分别对应元、角、分,表示小林存的零钱数; 第二行三个整数分别对应元、角、分,表示小树存的零钱数。 输出: 两人存的钱数(单位:元,保留2位小数) 样例输入: 30 5 5 45 7 4 样例输出: 76.29 代码如下,如有帮助,请采纳一下,谢谢。 编写程序,输入字符串s2,将其中所有小写字母复制到字符串数组strl中。例如 循环太多,系统卡死 #include <stdio.h> int b[10] = {0, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880}; int main(){ 数列的前3项都为1,从第4项开始,每项都是其前3项的和:1, 1, 1, 3, 5, 9, 17, … 请你编程求出数列第N项的4位尾数与90000之和。输入一个正整数N,输出所求的和。 #include<iostream> #include<cstring> #include<cstdio> #include<cstdlib> #include<cmath> #include<iomanip> #include<algorithm> #include<set> using namespace std; #define NUM 10000//符号常量 long long dp[1000000]; int main(){ //freopen("E:\\\\VSCode_C++\\\\test.txt","r",stdin); int n; cin>>n; dp[1]=1; dp[2]=1; dp[3]=1; for(int i=4;i<=n;i++){ dp[i]=dp[i-1]+dp[i-2]+dp[i-3]; } cout<<dp[n]<<endl; long long x=dp[n]%10000+9000; cout<<x; system("pause"); return 0; }\n
\n\n#include <stdio.h>\n//递归方法\nint sum(int n)\n{\n\tif(n == 1)\n\t\treturn 1;\n\telse\n\t\treturn n + sum(n-1);\n}\n\n//非递归方法\nint sum_2(int n)\n{\n\tint ss = 0;\n\tfor (int i = 1; i <=n;i++)\n\t{\n\t\tss += i; \n\t}\n\treturn ss;\n}\n\nint main()\n{\n\tint n;\n\tprintf("请输入n:");\n\tscanf("%d",&n);\n\t\n\tint s1 = sum(n);\n\tint s2 = sum_2(n);\n\tprintf("递归计算=%d;循环计算=%d\\n",s1,s2);\n\treturn 0;\n}
\n
\n\n#include<stdlib.h>\n#include<stdio.h>\nint main ( void )\n{\n\tint num1,num2,num3;\n\tprintf("请输入第一条边:");\n\tscanf("%d",&num1);\n\tprintf("请输入第二条边:");\n\tscanf("%d",&num2);\n\tprintf("请输入第三条边:");\n\tscanf("%d",&num3);\n\tif(num1+num2>num3&&num2+num3>num1&&num1+num3>num2)\n\t{\n\t\tif (num1*num1+num2*num2==num3*num3||num2*num2+num3*num3==num1*num1||num1*num1+num3*num3==num2*num2){\n\t\t\tprintf ( "%d、%d和%d可以组成直角三角形。\\n " ,num1,num2,num3);\n\t\t\tprintf ("三角形周长:%d\\n",num1+num2+num3);\n\t\t}\n\t\t\n\telse if (num1*num1+num2*num2<num3*num3||num2*num2+num3*num3<num1*num1||num1*num1+num3*num3<num2*num2)\n\t\t\t{\n\t\t\t\tprintf ("%d、%d和%d可以组成锐角三角形。\\n" ,num1,num2,num3);\n\t\t\t\tprintf ("三角形周长:%d\\n",num1+num2+num3);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tprintf ("%d、%d和%d可以组成钝角三角形\\n" ,num1,num2,num3);\n\t\t\t\tprintf ("三角形周长:%d\\n",num1+num2+num3);\n\t\t\t}\n\t}\n\telse\n\t\tprintf("%d, %d和%d不能组成三角形。\\n",num1,num2,num3);\n\tsystem("PAUSE");\n\treturn 0;\n}
sd2h b57 sA
\n\n
",
+ "difficulty": "简单",
+ "answer_id": 53428190,
+ "answer_content": "小写字母=5\n大写字母=1\n数字=3\n空格=2
\n
\n\n#include<stdio.h>\nint main()\n{\nint a=0,b=0,c=0,d=0,e=0;\nchar *p,str[80];\np=str;\ngets(str);\nwhile(*p)\nif(*p>='A' && *p <='Z')\n{a++;p++;}\nelse if(*p>='a' && *p <='z')\n{b++;p++;}\nelse if(*p==' ')\n{c++;p++;}\nelse if(*p>='0' && *p <='9')\n{d++;p++;}\nelse\n{e++;p++;}\nprintf("%d %d %d %d %d\\n",a,b,c,d,e);\nreturn 0;\n}
\n
\n\n#include <stdio.h>\n#include <stdlib.h>\nstruct Worker{\n int Number;\n char Name[50] ;\n int Age;\n float Salary;\n}s[10], *p=s;\nint main(int argc, char *argv[]) {\n float sum=0.0;\n for(int i=0;i<3;i++){\n struct Worker work;\n printf("请输入第%d个员工信息:\\n",i+1);\n printf("工号:");\n scanf("%d",&work.Number); \n printf("姓名:");\n scanf("%s",&work.Name); \n printf("年龄:");\n scanf("%d",&work.Age); \n printf("工资:");\n scanf("%f",&work.Salary); \n sum+=work.Salary;\n printf("输入完成!\\n");\n p[i]=work;\n }\n printf("平均工资为:%0.3f\\n",sum/10);\n printf("高于平均工资的姓名如下:\\n");\n for(int j=0;j<10;j++){\n\t\tif (p[j].Salary>sum/10) {\n\t\t\tprintf("%s\\n",p[j].Name); \n\t\t}\n\t }\n return 0;\n}
\n
\n\n#include <stdio.h>\n\nint main()\n{\n\tint y1,j1,f1,y2,j2,f2;\n\tint y,j,f;\n\tint shiftj = 0;\n\tint shifty = 0;\n\tfloat ss ;\n\tscanf("%d %d %d",&y1,&j1,&f1);\n\tscanf("%d %d %d",&y2,&j2,&f2);\n\n\t\n\tf = f1 + f2;\n\tif(f>=10)\n\t{\n\t\tf = f-10;\n\t\tshiftj = 1;\n\t}\n\tj = j1 + j2 + shiftj;\n\tif(j >= 10)\n\t{\n\t\tj = j - 10;\n\t\tshifty = 1;\n\t}\n\ty = y1 + y2 + shifty;\n\t\n\tss = y + j/10.0 + f/100.0;\n\tprintf("%.2f\\n",ss);\n\treturn 0;\n}
\naal1bb22cc33de4AA55BB”,生成的strl为"aabbccde"。\n
\n\n#include<stdio.h>\n\n\nint main()\n{\n int sum=0,t=0,i;\n char s[50],s1[50];\n scanf("%s",s);\n for(i=0;s[i]!='\\0';i++)\n {\n if(s[i]>='a'&&s[i]<='z'){\n s1[t++]=s[i];\n }\n }\n s1[t]='\\0';\n printf("%s",s1);\n}\n
\n int x, sum = 0, a;
\n for(int j = 1; j <= 100000; j++){
\n sum = 0;
\n a = j;
\n while(j != 0){
\n x = j % 10;
\n j /= 10;
\n sum += b[x];
\n }
\n j = a;
\n if(sum == a){
\n printf("%d ", j);
\n }
\n }
\n return 0;
\n}
\n ·你必须每天早上从供应商买来新的Whizboppers。
\n ·你必须用当天早上从供应商买来的盒子装着糖果出售。
\n 你可以从你的供应商处买来装有任意整数克糖果的盒子。
\n 每天有至多k位顾客到你的店里来。从第1个人开始,每个人会选择花费整数分的钱来买Whizboppers,钱数在1分到C分之间(包含1分和C分)。你打算以1分钱每克的价格出售;所以如果一个人想要花4分钱,你会给他恰好4克糖果。你可以给他1个4克的盒子,也可能是1个2克的盒子和2个1克的盒子。
\n 你最少需要买几个盒子才能保证,不管每个人想花多少钱买糖,你总是可以给他们对应质量的糖果?\n
注意:当一个人选择自己想买多少糖果后,你知道之前的人已经买了多少糖,但不能预知之后的人打算买多少糖。
\n 举个例子,如果每天至多有2位顾客到你的店里,每个人至多花2分钱(k=2,C=2),你可以从你的供应商买4个1克的盒子。但是你可以做的更好:只要买2个1克的盒子和1个2克的盒子,就可以满足你的顾客。如下所示:
\n第一个人给第一个人的盒子第二个人给第二个人的盒子2分1 个 2克2分
\n1分2 个 1克
\n1 个 1克1分1 个 1克2分
\n1分1 个 2克
\n1 个 1克
不论第一个人怎么买,你都可以给他对应质量的盒子,同时保证第二个人也能拿到正确质量的糖果。所以对于k=2,C=2,你用3个盒子就可以满足任意的顾客需求。\n输入格式\n 第一行一个整数T,表示询问数量。\n 接下来T行,每行包含两个整数k和C,分别表示最大人数和每个人花费的最多钱数。\n输出格式\n 对于每一个询问,输出一行包含"Case #x: y",x是询问编号(从1开始标号),y是你每天最少需要的盒子数量。
帮你梳理一下思路,这个问题有两个关键点:
\n\n1、需要的盒子的容量必须大于等于顾客的最大购买量。
\n\n2、不论哪种情况,永远从2个1克的盒子开始计算。
\n\n例如,样例2 2,即每天至多有2位顾客到你的店里,每个人至多花2分钱,此时:
\n\n1)最大购买数量为:2*2=4g
\n\n2)先给定两个1克的盒子:1g*2,容量:2g
\n\n如果每人购买2g,则总共需要可装4g的盒子,此时的问题是:如何确定下一个盒子?
\n\n当然,题目已经告诉我们了还需要1个2g的盒子,那么这个1个如何确定的呢?
\n\n确定方法:(4-2)/2=1。
\n\n至此,容量为4g,满足最大购买数量,需要3个盒子,规格为:1g*2,2g*1。
\n\n当然也有除不尽的情况,方法是向上取整。
\n\n例如,样例:1 5,即每天至多有1位顾客到店,至多花费5分钱,此时:
\n\n1)最大购买数量为:1*5=5g
\n\n2)先给定两个1克的盒子:1g*2,容量:2g
\n\n如果这个顾客购买3g,此时的问题是:如何确定下一个盒子?
\n\n确定方法:(3-2)/3=0.333,向上取整为1,所以还需要1个3g的盒子。
\n\n至此,容量为5g,满足最大购买数量,需要3个盒子,规格为:1g*2,3g*1。
\n\n再比如,样例2 50,即每天至多有2位顾客到店,至多花费50分钱,此时:
\n\n1)最大购买数量为:2*50=100g
\n\n2)先给定两个1克的盒子:1g*2,容量:2g
\n\n如果每人购买2g,则还需要1个2g的盒子(前面已给出),此时容量为4g
\n\n如果每人购买3g,则总共需要可装6g的盒子,此时的问题依然是:如何确定下一个盒子?
\n\n确定方法:(6-4)/3=0.67,向上取整为1,所以还需要1个3g的盒子,此时容量为7g
\n\n如果每人购买4g,则需要可装8g的盒子,此时的问题依然是:如何确定下一个盒子?
\n\n确定方法:(8-7)/4=0.25,向上取整为1,所以还需要1个4g的盒子,此时容量为11g
\n\n如果每人购买6g,则需要可装12g的盒子,此时的问题依然是:如何确定下一个盒子?
\n\n确定方法:(12-11)/6=1/6,向上取整为1,所以还需要1个6g的盒子,此时容量为17g
\n\n为什么是:如果每人购买6g?因为每次“如果”,都要使需要的容量超过了前一次的容量。
\n\n......
\n\n以此类推,直到容量大于等于100g,最终发现需要的盒子数量是11个,规格为:1g*2,2g*1,3g*1,4g*1,6g*1,......
\n\n这就是这个问题的基本思路。
\n\n代码可以参考:
\n\n\n#include<iostream>\n#include<cmath>\nusing namespace std;\n\nint main()\n{\n\tint n, k, count = 1;\n\tlong long c;\n\tcin >> n;\n\twhile (n--)\n\t{\n\t\tcin >> k >> c;\n\t\tint num = k; \n\t\tlong long sum = k;\n\t\tfor (long long i = 2; i <= c; i = sum / k + 1)\n\t\t{\n\t\t\tint t = num;\n\t\t\tnum += ceil((k * i - sum) * 1.0 / i);\n\t\t\tsum += i * (num - t);\n\t\t}\n\t\tcout << "Case #" << count++ <<": " << num << endl;\n\t}\n\treturn 0;\n}
\n\n", + "tag_name": "c语言", + "cpp": "#include
一个数如果恰好等于它的所有因子之和,这个数就称为“完数”。统计自然数 1 — 100 间完数的个数。", + "difficulty": "中等", + "answer_id": 53444950, + "answer_content": "
供参考:
\n\n\n#include<stdio.h>\n\nint perfect()\n{\n int i,x,sum,cnt=0;\n for(i=1;i<=100;i++)\n {\n sum=0;\n for(x=1;x<i;x++)\n {\n if(i%x==0)sum+=x;\n }\n if(i==sum)\n {\n cnt++;\n printf("%d ",i);\n }\n }\n return cnt;\n}\n\nint main()\n{\n printf("\\ncount=%d\\n",perfect());\n \n return 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
\n#include <stdio.h>\n#include <random>\n#include <iostream>\n#include <string>\n#include <time.h>\n\nusing namespace std;\n\nvoid InsertSort(int a[], int n)\n{\n\tfor (int i = 1; i<n; i++) {\n\t\tif (a[i] < a[i - 1]) { //若第i个元素大于i-1元素,直接插入。小于的话,移动有序表后插入 \n\t\t\tint j = i - 1;\n\t\t\tint x = a[i]; //复制为哨兵,即存储待排序元素 \n\t\t\ta[i] = a[i - 1]; //先后移一个元素 \n\t\t\twhile (x < a[j]) { //查找在有序表的插入位置 \n\t\t\t\ta[j + 1] = a[j];\n\t\t\t\tj--; //元素后移 \n\t\t\t}\n\t\t\ta[j + 1] = x; //插入到正确位置 \n\t\t}\n\t}\n}\n\nint main()\n{\n\tcout << "请输入产生多个随机数:";\n\tint ranNum[100],num = 0;\n\tsrand((unsigned)time(NULL));//time()用系统时间初始化种。为rand()生成不同的随机种子\n\tcin >> num;\n\tcout << "随机数组:";\n\tfor (int i = 0; i < num; i++)\n\t{\n\t\tranNum[i] = 10 + (rand() % 80);\n\t\tcout << " " << ranNum[i];\n\t}\n\tcout << endl;\n\tInsertSort(ranNum, num);\n\tcout << "排序后整数序列:";\n\tfor (int j = num-1; j >= 0; j--) {\n\t\tcout << ranNum[j] << " ";\n\t}\n\tcout << endl;\n\tsystem("pause");\n\treturn 0;\n}
\n\n\n",
+ "tag_name": "c语言",
+ "cpp": "#include \n设计一个可以完成任意五则运算(加法/减法/乘法/除法/取余)的程序。除法按照计算机中整型相除来计算。\n输入格式\n多行输入,每输入一行数据对应输出一行。\n每行输入格式为 a # b,其中 #∈{+,−,∗,/,%}\na,b均为自然数\n输出格式\n每行输出对应的计算结果;\n当运算为除法/取余的时候,如果除数为 0 ,输出
WA
。
输入样例
\n\n2+2\n4*5\n6/7\n4%3\n4%0
\n输出样例
\n\n4\n20\n0\n1\nWA
",
+ "difficulty": "简单",
+ "answer_id": 53357554,
+ "answer_content": "\n#include<stdio.h>\n\nint main()\n{\n\tint a;\n\tint b;\n\tchar operation;\n\tint num;\n\n\twhile (scanf("%d", &a) != EOF)\n\t{\n\t\tscanf("%c", &operation);\n\t\tscanf("%d", &b);\n\n\t\tif (operation == '+')\n\t\t{\n\t\t\tnum = a + b;\n\t\t\tprintf("%d\\n", num);\n\t\t}\n\t\telse if (operation == '-') {\n\t\t\tnum = a - b;\n\t\t\tprintf("%d\\n", num);\n\t\t}\n\t\telse if (operation == '*') {\n\t\t\tnum = a * b;\n\t\t\tprintf("%d\\n", num);\n\t\t}\n\t\telse if (operation == '/' && b != 0) {\n\t\t\tnum = a / b;\n\t\t\tprintf("%d\\n", num);\n\t\t}\n\t\telse {\n\t\t\tprintf("%s\\n", "WA");\n\t\t}\n\t}\n\treturn 0;\n}
\n\n", + "tag_name": "c语言", + "cpp": "#include
题目描述
乐乐做好了一二三等奖奖品费用预算方案之后,决定到市场上具体咨询一下三种奖品的具体价格,发现各个商家的报价还是有差别的,乐乐决定哪家所有奖品总金额最少就在哪家购买,假设每家货源是充足的。乐乐咨询了n个店家,几乎跑遍了整个市场,才得到各个商家的最低报价清单。现在请你计算出乐乐会在哪家商家购买奖品以及费用是多少。\n输入
共 n+1 行
第一行,有四个整数 n,x,y,z,数与数之间用一个空格隔开,n 表示乐乐咨询的商家数,x,y,z 分别表示要购买一等奖奖品数量、二等奖奖品数量、三等奖奖品数量。
接下来的 n 行,每行都有三个数,数与数之间用一个空格隔开,第 i+1 行分别表示编号为 i 的商家对一、二、三等奖奖品的报价(单价) \n输出
共有两个整数,第一个数表示购买奖品的商家编号(如果有多家总费用最少,输出编号最小的商家),第二个数是购买奖品的总费用。 \n样例输入
\n3 1 2 3\n70 50 30\n60 40 20\n80 55 33\n
样例输出
\n2 200
提示
【样例解释】
乐乐咨询了 3 个商家,打算购买一二三等奖奖品数量分别是 1 个、2 个、3 个,编号为 1 的商家一二三等奖奖品报价分别是 70、50、30 元,编号为 2 的商家报价分别是 60、40、20 元,编号为 3 的商家报价分别是 80、55、20 元,乐乐在编号为 2 的商家购买总费用最低,为200 元。
【数据范围】
40%数据:1≤n≤5000
100%数据:1≤n≤100000,1≤x,y,z≤1000,奖品报价都是 1000 范围以内的正整数。
", + "difficulty": "困难", + "answer_id": 53419944, + "answer_content": "\n#include <iostream>\n#include <stdio.h>\nusing namespace std;\n\nint main(){\n int n,x,y,z,i,min=1000000,n1,n2,n3,temp,t=0;\n cin>>n>>x>>y>>z;\n for(i=0;i<n;i++){\n temp=0;\n cin>>n1>>n2>>n3;\n temp+=n1*x+n2*y+n3*z;\n if(temp<min){\n min=temp;\n t=i+1;\n }\n }\n cout<<t<<" "<<min;\n return 0;\n}
\n\n\n",
+ "tag_name": "c++",
+ "cpp": "#include 为什么不写注释?
\n\n懒得写。。。
\n\n\n#include <iostream>\n#include <string>\n\nusing namespace std;\n\nint fun(string str);\n\nint main(void) {\n\tstring str = "abc123 def45gh";\n\n\tcout << fun(str);\n\n\n\treturn 0;\n}\n\n\nint fun(string str) {\n\tint index = -1;\n\tint score = 0;\n\n\tfor (int i = 0; i < str.length(); i++) {\n\t\tif ((str[i] >= 48 && str[i] <= 57) && (i + 1 < str.length()) && (str[i + 1] >= 48 && str[i + 1] <= 57)) {\n\t\t\tindex = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (index == -1) {\n\t\treturn score;\n\t}\n\n\tscore = str[index] - '0';\n\tfor (int i = index + 1; i < str.length(); i++) {\n\t\tif (str[i] >= 48 && str[i] <= 57) {\n\t\t\tscore *= 10;\n\t\t\tscore += str[i] - '0';\n\t\t\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn score;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
使用array_equal(int a[],int b[],int size)\na[0]和b[0],a[1]和b[1],…,a[size-1]和b[size-1]检查是否相同\n如果整体要素相同,则返还1,否则返还0。\n利用反复循环检查排列的各要素是否相等。如果有一个不同的地方,就可以马上返还0。![图片说明](https://img-ask.csdn.net/upload/202005/28/1590646351_294989.png)\n翻译是:\n输入第一次排列:1 2 3 4 5\n输入第二次排列:1 2 2 2 2 \n不一致返还0\n第二个一致就返还1
", + "difficulty": "中等", + "answer_id": 1282702, + "answer_content": "\n```\n#include计算s=1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的值
\n\n当某一项的值超过50时,结束循环,并将当时的s的值进行输出,将当时刚好超过50的那一项的值和项数一并输出;
\n\n如果最终项的值没有超过50,则按循环计划计算完所有的累加和,也将最终项的值和项数一并输出。
", + "difficulty": "简单", + "answer_id": 22392963, + "answer_content": "#include<stdio.h>
\n#include<math.h>
\n#include<string.h>
\n#include<stdlib.h>
\nint main(int argc,char * argv[])
\n{
\n int summer,summer2,num;//声明和与项数变量
\n summer=0,summer2=0;//初始化和变量
\n num=atoi(argv[1]);//将命令行第二个参数转化为整数项数
\n for(int i=1;i<=num;i++)//进行循环求和
\n {
\n summer+=i;
\n summer2+=summer;
\n if(summer>50)//当某一项的值大于50时
\n {
\n printf("计算总和是%d\\n超过50的项是第%d项\\n",summer2,i);
\n printf("该项的值是%d\\n",summer);
\n return 0;
\n }
}
\n printf("计算总和是%d\\n,最后一项是%d\\n没有任何一项的值超过50\\n",summer2,num);//当任一一项的值均不大于50时
\n return 0;
\n
}
\n\n
\n代码编译运行正确无误,使用格式为:×××.exe number。***.exe指本地编译成的程序,number是要循环计算的项数。二者之间有一个空格。如果我对题目的理解有误,请私信我或者评论处给我留言。
创建一个大小为 100 的整型数组,数组元素由数值大小在闭区间[0,1000]内的\n随机数组成。在控制台窗口中输出数组内数值为 7 的倍数,且除以 3 余数为 2 的\n元素。若数组中不存在符合规则的元素,则在控制台中给出相应提示
", + "difficulty": "简单", + "answer_id": 53434106, + "answer_content": "代码如下,如有帮助,请采纳一下,谢谢。
\n\n\n#include <stdio.h>\n#include <stdlib.h>\nint main()\n{\n\tint a[100];\n\tint i,nmb = 0;\n\tfor(i = 0;i<100;i++)\n\t\ta[i] = rand()%1000;\n\tfor (i = 0;i<100;i++)\n\t{\n\t\tif( (a[i]%7 == 0) && (a[i]%3 ==2) )\n\t\t{\n\t\t\tprintf("%5d",a[i]);\n\t\t\tnmb++;\n\t\t}\n\t}\n\tprintf("\\n");\n\tif(nmb == 0)\n\t\tprintf("没有符合条件的数\\n");\n\t\n\n\treturn 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
\n输入样例:\n将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按要求输出指定的数组元素。\n输入格式:\n在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。第三行输入一个非负整数m(m<n)。\n输出格式:\n在一行中输出逆序存放后下标为m的数组元素。行末无空格。
\n6\n10 8 1 2 3 4\n2
\n输出样例:
\n\n2
",
+ "difficulty": "中等",
+ "answer_id": 19384015,
+ "answer_content": "\n#include <stdio.h>\n#include <stdlib.h>\n\nint main()\n{\n int n,m;\n scanf("%d",&n);\n if(n<1||n>10){\n printf("1≤n≤10");\n return 0;\n }\n int *a = (int*)malloc(sizeof(int)*n);\n for(int i=n-1; i>=0; i-- ){\n scanf("%d",&a[i]);\n }\n scanf("%d",&m);\n if(m<0||m>=n){\n printf("0≤m<n");\n return 0;\n }\n printf("%d",a[m]); \n return 0;\n}
\n\n", + "tag_name": "c语言", + "cpp": "#include
\n#include <stdio.h>\n#include <string>\nusing namespace std;\n#pragma warning(disable:4996)\nint main()\n{\n\tint i;\n\tint sum = 0;\n\tchar arrs[1000];\n\tprintf("Input a word:");\n\twhile (scanf("%s", &arrs) != EOF) {\n\t\tsum = 0;\n\t\tfor (i = 0; i < strlen(arrs); i++) {\n\t\t\t/// <summary>\n\t\t\t/// a-z 的ascii码高于 A-Z\n\t\t\t/// </summary>\n\t\t\t/// <returns></returns>\n\t\t\tif (arrs[i] > 'a') {\n\t\t\t\tsum += arrs[i] - 'a' + 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsum += arrs[i] - 'A' + 1;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tprintf("energy=%d\\n", sum);\n\t\tprintf("Input a word:");\n\t\t\n\t}\n\t\n\treturn 0;\n}
\n\n\n\n
程序运行结果:
\n\n\nInput a word:Integrity\nenergy=127\nInput a word:Upset\nenergy=81\nInput a word:
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
\n#include<stdio.h>\nint main()\n{\n int a[10005];\n long long t=0;\n\tint n,i,j,x;\n\tscanf("%d",&n);\n\tfor(i=0;i<n;i++)\n\t scanf("%d",&a[i]);\n\tfor(i=0;i<n;i++){\n for(j=0;j<n;j++){\n if(a[i]>a[j]){\n x=a[i];\n a[i]=a[j];\n a[j]=x;\n }\n }\n\t}\n\tfor(i=0;i<n;i++)\n\t{\n\t\tt+=a[i]*(i+1);\n\t}\n\tprintf("%lld",t);\n\treturn 0;\n}\n
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
#include<iostream>\n#include<algorithm>\nusing namespace std;\nint main()\n{\n char ans[4]={'A','B','C','D'};\n sort(ans,ans+4); /* 这个sort可以不用,因为{1,2,3,4}已经排好序*/\n do /*注意这步,如果是while循环,则需要提前输出*/\n {\n for(int i=0;i<4;++i)\n cout<<ans[i]<<" ";\n cout<<endl;\n }while(next_permutation(ans,ans+4));\n return 0;\n}
\n\n去判断吧。
\n\n\n", + "tag_name": "c++", + "cpp": "#include
我帮你改良了一下,试试我这个代码
\n\n\n#include<stdio.h>\n#include<string.h>\nint a[100001];\nint main()\n{\n int t,i,n,q,x,y;\n scanf("%d",&t);\n while(t--)\n {\n\t\tmemset(a,0,sizeof(a));\n scanf("%d %d",&n,&q);\n for(i=0;i<n;i++)\n\t\t{\n scanf("%d",&y);\n\t\t\ta[y]++;\n\t\t }\n while(q--)\n {\n scanf("%d",&x);\n printf("%d\\n",a[x]);\n }\n }\n return 0;\n}
\n\n", + "tag_name": "c语言", + "cpp": "#include
\n#include <stdio.h>\n#include <stdlib.h>\nint main()\n{\n\tint n,i,j,t;\n\t\n\tscanf("%d",&n);\n\tint* a = (int*)malloc(n*sizeof(int));\n\tfor(i=0;i<n;i++)\n\t{\n\t\tscanf("%d",&a[i]);\n\t}\n\tint cout=0;\n\tfor( i=0;i<n;i++)\n\t{ \n\t\tfor( j=i+1;j<n;j++)\n\t\t{\n\t\t\tfor(t = 0; t <n;t++)\n\t\t\t\tif(a[i]+a[j]==a[t])\n\t\t\t\t\tcout++;\n\t\t}\n\t}\n\tprintf("%d",cout);\n\tfree(a);\n\treturn 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
题目描述\n植树节又到了,商家A和商家B为了卖出更多的树苗。
\n商家A有了新的决定:
\n购买树苗数量小于等于10棵,所有树苗按正常价格10元一棵收费;
\n购买树苗数量大于10且小于等于20棵,超出10棵以上的树苗按8.2元一棵收费,其余树苗按正常价格收费;
\n购买树苗数量大于20棵,超出20棵以上的树苗按7.5元一棵收费,10至20棵部分树苗按8.2元一棵收费,其余树苗按正常价格收费。
\n商家B决定:
\n所有树苗12元一棵,但是均打七折卖出。
图图要代表班级去买树苗,要求输入图图需要购买的树苗棵数,输出在哪家商家购买更加划算及其所要花费的钱数。\n输入要求\n1 行,一个整数,表示图图需要购买的树苗数量。\n输出要求\n1 行,如果商家A的树苗比较划算,输出:A,否则输出:B,同时输出图图购买树苗最优惠的钱数(文字和数字间用空格隔开)。\n样例输入 \n
\n30\n
样例输出
\n\nB 252", + "difficulty": "中等", + "answer_id": 53347698, + "answer_content": "
修改数据类型int为double。在计算过程中多是浮点计算,所以如果使用int系统会对计算结果进行取整,多次执行会有误差
\n\n\n#include <iostream>\nusing namespace std;\nint main() {\n double n, A, B; //数据类型用double,保证计算精度\n cin >> n;\n B = 12 * 0.7 * n;\n if (n <= 10) {\n A = 10 * n;\n }\n else if (n > 10 && n <= 20) {\n A = 10 * 10 + (n - 10) * 8.2;\n }\n else {\n A = 10 * 8.2 + (n - 20) * 7.5 + 10 * 10;\n }\n if (A < B) {\n cout << "A " << A;\n }\n else {\n cout << "B " << B;\n }\n return 0;\n}
\n\n", + "tag_name": "c++", + "cpp": "#include
#include <iostream>
\n#include <string>
using namespace std;
\n\nint main()
\n{
\n string temp = "";
\n cout << "请输入字符串:";
\n cin >> temp;
\n string str = ""; //存放只出现一次的字符
\n string str1 = ""; //存放重复的字符
\n for (int i = 0; i < temp.length(); i++)
\n {
\n string tempSub = temp.substr(i, 1);
\n int b = temp.rfind(tempSub); //从后向前查找字符出现的位置
\n if (i == b && str1.find(tempSub) == -1) //如果b和遍历查找的位置一致,且str1 里没有该字符,说明只出现一次
\n str +=temp.substr(i, 1);
\n else if (str1.find(tempSub) == -1)
\n str1 += temp.substr(i, 1);;
\n }
\n cout << "只出现一次的字符:" << str << endl;
\n cout << "重复出现的字符的字符:" << str1 << endl;
\n system("pause");
\n return 0;
\n}
\n", + "tag_name": "c++", + "cpp": "#include
题目描述
报数游戏\n首先,会给他们一人一个编号,并且每个人的编号都不相同。接下来的每一回合,会给一个数,编号超过它的最小编号的人要报出自己的编号。如果没有人的编号比给出的数要大,那么编号最大的人要报出自己的编号。每个人可以重复报号。\n会按照一个列表顺次报出每个回合的数,朋友们想知道每回合报出的编号应该是多少。\n输入
输入数据共 3 行。\n第一行有两个整数 n,m(1≤n≤100,000,1≤m≤100,000),分别表示参与游戏的朋友的个数,和游戏的回合数。 \n第二行 n个整数 ai(1≤ai≤100,000,000),表示朋友们每个人的编号。对于 0≤i<j<n,都有 ai<aj,即他们的编号递增排列。 \n第三行 m 个整数 qi(1≤qi≤100,000,000),表示每回合给的数字。\n输出
\n输出共一行 m 个整数,表示每回合报出的编号,每两个整数之间一个空格,最后一个数后面没有空格。
\n#include<iostream>\n#include<cstring>\n#include<vector>\n#include<algorithm>\nusing namespace std;\nint ai[100010], qi[100010];\nint main()\n{\n\tint a, q;\n\twhile (cin >> a >> q)\n\t{\n\t\tfor (int i = 0; i < a; i++)cin >> ai[i];\n\t\tfor (int i = 0; i < q; i++)cin >> qi[i];\n\t\tfor (int i = 0; i < q; i++) {\n\t\t\tint left = 0, right = a - 1, mid;\n\t\t\twhile (left < right) {\n\t\t\t\tmid = (left + right) >> 1;\n\t\t\t\tif (ai[mid] <= qi[i])left = mid + 1;\n\t\t\t\telse right = mid;\n\t\t\t}\n\t\t\tif (left - 1 < 0 || ai[left] < qi[i])left++;//qi[i]小于最小值或大于最大值的情况\n\t\t\ti ? cout << " " << ai[left - 1] : cout << ai[left - 1];\t\t\t\n\t\t}\n\t\tcout << endl;\n\t}\n\treturn 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
\n#include "stdio.h"\n\ndouble fun(int n)//用double提高精度和计数位数。\n\n{\n\n double sum=1.0;\n\n int i;\n\n for(i=1;i<=n;i++)\n\n sum*=i;\n\n return sum;\n\n}\n\n \n\nint main()\n\n{\n\n int i,mark=1;\n\n double sum=0,item=0;\n\n for(i=1;i<=10;i++)\n\n {\n\n item=mark*fun(i);\n\n sum+=item;\n\n mark=-mark;\n\n }\n\n printf("1!-2!+3!-4!+5!-6!+7!-8!+9!-10!=%.0lf\\n",sum);\n\n\n\n}
\n\n\n", + "tag_name": "c++", + "cpp": "#include \"stdio.h\"\ndouble fun(int n)\n{\n\tdouble sum=1.0;\n\tint i;\n\tfor(i=1;i<=n;i++)\n\t\tsum*=i;\n\treturn sum;\n}\nint main()\n{\n\tint i,mark=1;\n\tdouble sum=0,item=0;\n\tfor(i=1;i<=10;i++)\n\t{\n\t\titem=mark*fun(i);\n\t\tsum+=item;\n\t\tmark=-mark;\n\t}\n\tprintf(\"1!-2!+3!-4!+5!-6!+7!-8!+9!-10!=%.0lf\\n\",sum);\n}", + "topic_link": "https://bbs.csdn.net/topics/600469867", + "status": 1, + "keywords": "算法初阶,基础知识,函数的增长,标准记号与常用函数", + "license": "csdn.net", + "notebook": { + "cpp": "https://codechina.csdn.net/csdn/csdn-daily-code/-/jupyter/master/data/notebook/answer/ipynb/cpp/136.ipynb?type=file" + }, + "notebook_enable": 1 +} \ No newline at end of file diff --git a/data_backup/cpp_code_json/137.json b/data_backup/cpp_code_json/137.json new file mode 100644 index 000000000..091ee4718 --- /dev/null +++ b/data_backup/cpp_code_json/137.json @@ -0,0 +1,18 @@ +{ + "question_id": 7443725, + "question_title": "输出最长的递增数字字符串", + "question_content": "
如何在一亿位整数组成的字符串中找到最长的递增数字字符串?
", + "difficulty": "中等", + "answer_id": 53421026, + "answer_content": "1亿个字符串占用的缓存超出了编译器的默认缓存,所以我代码中定义了一个宏来表示字符串的最大长度,如果你需要扩展到1亿,需要修改编译器的默认缓存大小,然后把宏定义的值调大即可。代码如下,如有帮助,请采纳一下,谢谢。
\n\n\n#include <stdio.h>\n#include <string.h>\n#define MAX_SIZE 100000\nint main()\n{\n\tchar buf[MAX_SIZE] = {0};\n\tint i = 0,len = 0,index = 0;\n\tchar maxbuf[12] = {0}; //最大的可能是0-9,最多10个字符,12个空间足够用\n\tchar maxbuf2[12] = {0};\n\tint maxlen = 0;\n\tgets(buf); //实际字符串由外部输入,或者从文件读取,这个根据实际情况修改吧\n\tlen = strlen(buf); //获取实际长度\n\n\tmaxbuf2[0] = buf[0];\n\ti = 1;\n\tindex = 1;\n\twhile(i < len)\n\t{\n\t\tif (buf[i] > buf[i-1])\n\t\t{\n\t\t\tmaxbuf2[index] = buf[i];\n\t\t\tindex++;\n\t\t}else\n\t\t{\n\t\t\tif (index > maxlen)\n\t\t\t{\n\t\t\t\tmaxlen = index;\n\t\t\t\tstrcpy(maxbuf,maxbuf2);\n\t\t\t\tmaxbuf[index] = '\\0';\n\t\t\t\t\n\t\t\t\tmaxbuf2[0] = buf[i];\n\t\t\t\tindex = 1;\n\t\t\t}else\n\t\t\t{\n\t\t\t\tmaxbuf2[0] = buf[i];\n\t\t\t\tindex = 1;\n\t\t\t}\n\t\t}\n\t\ti++;\n\t}\n\t//处理最后一个串\n\tif (index > maxlen)\n\t{\n\t\tmaxlen = index;\n\t\tstrcpy(maxbuf,maxbuf2);\n\t\tmaxbuf[index] = '\\0';\n\t}\n\tprintf("最大串长度:%d,字符串:%s\\n",maxlen,maxbuf);\n\treturn 0;\n}\n
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
\n8 3 1
\n输出样例
\n\n7
\n
\n要求从第s个数开始,数m个出列,第s个不出列
", + "difficulty": "困难", + "answer_id": 53358508, + "answer_content": "\n#include <iostream>\n \nvoid JosePhus(int n, int m, int start) {\n int i, *arr = new int[n]; // 动态分配数组\n int count = 1;; // 保存当前已站出来的人数\n for(i = 0;i < n; i++) // 初始化,把各位置号存入数组中\n arr[i] = i + 1;\n int sum = n;\n //输出参考 printf("出列顺序为:");\n while(count < n) { // 出列顺序\n start--; // 因为数组下标从0开始,所以要减1\n int index = (start+m-1) % sum;//记录第count次出列的下标 \n //输出参考 std::cout << arr[index] << " "; // 输出当前要站出来的人的位置号\n for(i = index; i < sum-1; i++)//出列相当于人数少了一个,循环上限为sum-1\n arr[i] = arr[i+1]; // 把位置号前移\n start = index + 1;//第count+1次开始位置为上次出列下标位置+1\n sum--;//总人数减一 \n count++;//出列人数+1 \n }\n std::cout<< arr[0] <<"\\n";//最后剩下的第一个元素为最后留下的人\n}\n \nint main(int argc, const char * argv[]) {\n int n, m, start; // n:人数 m:数到多少出列 start:开始位置\n \n std::cout << "请输入n,m,start:\\n";\n while(std::cin >> n >> m >> start) {\n JosePhus(n, m, start); // 调用解决约瑟夫问题的函数\n std::cout << "请输入n,m,start:\\n";\n }\n return 0;\n}
\n\n", + "tag_name": "c++", + "cpp": "#include
输入10个数,按绝对值从大到小排序输出。\n输入形式:输入10个float实数\n输出形式:保留小数点后两位有效数字;输出从大到小排列\n
", + "difficulty": "困难", + "answer_id": 53405662, + "answer_content": "\n#include <math.h>\n#include <stdio.h>\nvoid paixu(float *p,int n)\n{\n\tint i,j;\n\tfor (i = 0; i<n-1; i++) \n\t{ //控制n-1趟冒泡\n\t\tfor (j = 0; j<n - 1 - i; j++)\n\t\t{\n\t\t\tif (fabs(p[j])<fabs(p[j + 1])) \n\t\t\t{ //比较相邻的两个元素\n\t\t\t\tfloat tmp; //临时变量\n\t\t\t\ttmp = p[j]; //交换\n\t\t\t\tp[j] = p[j + 1];\n\t\t\t\tp[j + 1] = tmp;\n\t\t\t}\n\t\t}\n\t}\n}\n\nint main()\n{\n\tfloat f[10];\n\tint i;\n\tfor(i=0;i<10;i++)\n\t\tscanf("%f",&f[i]);\n\tpaixu(f,10);\n\tfor(i=0;i<10;i++)\n\t\tprintf("%.2f ",f[i]);\n\n\treturn 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
从键盘输入m(2<=m<=6)行n(2<=n<=6)列整型数据,编程找出其中的最大值及其所在位置的行列下标值并输出。\n输入格式:\n在第一行输入数据的行数m和列数n的值,从第二行开始以二维数组的形式依次输入m行n列整型数据。\n输出格式:\n依次输出最大值及其所在位置的行列下标值,中间以逗号,分隔,最后换行。\n输入样例:
\n\n3 4\n1 2 3 4\n8 9 7 6\n5 6 7 0
\n输出样例:
\n\n9,1,1
",
+ "difficulty": "中等",
+ "answer_id": 53428211,
+ "answer_content": "代码如下:
\n\n\n#include <stdio.h>\nint main ()\n{\n\tint a[6][6];\n\tint m,n;\n\tint i,j;\n\tint max;\n\tint indexx=0,indexy=0;\n\tscanf("%d %d",&m,&n);\n\tfor (i = 0;i<m;i++)\n\t{\n\t\tfor (j = 0;j<n;j++)\n\t\t{\n\t\t\tscanf("%d",&a[i][j]);\n\t\t\tif(i == 0 && j==0)\n\t\t\t{\n\t\t\t\tmax = a[i][j];\n\t\t\t\tindexx = 0;\n\t\t\t\tindexy = 0;\n\t\t\t}else\n\t\t\t{\n\t\t\t\tif (a[i][j] > max)\n\t\t\t\t{\n\t\t\t\t\tmax = a[i][j];\n\t\t\t\t\tindexx = i;\n\t\t\t\t\tindexy = j;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\tprintf("%d,%d,%d\\n",max,indexx,indexy);\n\treturn 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
给定 2 个正整数 a, b ,a 和 b 最多可能有 40 位,求出 a + b 的和。\n输入描述\n两个正整数 a, b,a 和 b 最多可能有 40 位。一行表示一个数。\n输出描述\na + b 的和。
样例输入
111111111111111111111111111111111111111\n222222222222222222222222222222222222222\n
样例输出
333333333333333333333333333333333333333\n
",
+ "difficulty": "简单",
+ "answer_id": 1262493,
+ "answer_content": "\n```\n#include\n#include <iostream>\nusing namespace std;\n\nint main(){\n int a,b;\n cin>>a;\n \n int n=1,count=1,num=1;\n \n for(int i=0;i<a;i++)\n {\n if(count > n)\n {\n num+=2;\n n++;\n count=1;\n i--;\n }\n else\n {\n cout << num << ","; //输出整个数列\n count++;\n }\n }\n cout << endl;\n \n \n cout << num;\n \n return 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
Ø 问题描述:已知一只家禽得了流感,流感的传播时间为 24 小时,在这 24 小时内最多能将流感传给其它 M 只家禽,农场主需要购买紧急药品,假设发现时已经过了 N 天,那么农场主需要至少买多少包药呢?(一包药为一只家禽用量)
Ø 输入:一行,两个整数,第一个表示流感传染家禽的数量 M,第二个表示发现时已过的天数。
Ø 输出:一行,一个整数,表示需要药的包数。
Ø 样例输入:
10 2
Ø 样例输出:
121
", + "difficulty": "困难", + "answer_id": 53345307, + "answer_content": "\n#include<iostream>\nusing namespace std;\nint total(int x); //定义函数\nint m; //m为感染数\nint main() {\n\tint x; //x为发现天数\n\tcin >> m >> x;\n\tint to = total(x); //to为结果\n\tcout << to;\n\treturn 0;\n}\nint total(int x) {\n\tif (x > 0)\n\t{\n\t\treturn (m + 1) * total(x - 1);\n\t}\n\telse return 1;\n}\n
\n\n", + "tag_name": "c++", + "cpp": "#include
一个班有10个同学,通过键盘输入成绩,\n并打印输出,每行输出5个同学的成绩。并求出平均成绩,最高分、最低分并输出。算法分析:\n(1)定义一个数组用来存放10个成绩数据。\n(2)用循环结构实现成绩输入;\n(3)用循环结构实现成绩输出,并控制换行;\n(4)使用循环结构求平均成绩、最高分、最低分并输出。
", + "difficulty": "简单", + "answer_id": 53399158, + "answer_content": "\n#include<stdio.h>\n\nint main(){\n int x,i,max=0,min=0;\n double sum=0,ave=0;\n int a[10];\n for(i=0;i<10;i++){\n scanf("%d",&a[i]);\n sum+=a[i];\n if(max<a[i])\n max=a[i];\n if(min>a[i])\n min=a[i];\n }\n ave=sum/10;\n for(i=0;i<5;i++)\n printf("%d ",a[i]);\n printf("\\n");\n for(i=5;i<10;i++)\n printf("%d ",a[i]);\n printf("平均成绩%f,最高分%d,最低分%d ",ave,max,min);\n\n}\n
\n\n\n", + "tag_name": "c++", + "cpp": "#include
一个整数的序列,要求对其重新排序。排序要求:\n1.奇数在前,偶数在后;\n2.奇数按从大到小排序;\n3.偶数按从小到大排序。
\n输入一行,包含整数个数n, n个整数值,彼此以一个空格分开。\n按照要求排序后输出一行,包含排序后的n 个整数。\n
用一个数组也可以的:
\n\n#include <iostream>
\n#include<algorithm>
\nusing namespace std;
bool cmp(int a, int b){
\n int x = a % 2;
\n int y = b % 2;
\n if(x == y)
\n if(x == 0)
\n return a < b;
\n else
\n return a > b;
\n else
\n return x > y;
\n}
\nint main()
\n{
\n int n, i;
\n cin >> n;
\n int a[n];
\n for(i = 0; i < n; i++)
\n cin >> a[i];
\n sort(a, a+n, cmp);
\n for(i = 0; i < n; i++)
\n cout << a[i] << " ";
\n}
如何根据一个小范围值区间,查找一个对应关系表,获得一个对应值呢\n例如电压值为2000~2026(mv),![图片说明](https://img-ask.csdn.net/upload/201907/03/1562152764_309711.png)\n其对应功率值为-52(dB),如何编程,完成建表,查表,获得结果呢?
", + "difficulty": "困难", + "answer_id": 827931, + "answer_content": "\n```\n/*17点:一一对应版本*/\n#include对文本文件中凯撒密码穷举破解 并把26次结果 输出为二十六个文本文件(.txt)
", + "difficulty": "中等", + "answer_id": 53360172, + "answer_content": "将输入数据放于"read.txt"文件中,编译运行程序即可。
\n\n\n#include<stdio.h>\n\nint main(void){\n\tFILE *fp=NULL;\n\tchar c[200000],x;\n\tint i=0,n=0,j=0;\n\t\n\tfp=fopen("read.txt","r"); //读取txt文件数据 \n\twhile((x=fgetc(fp))!=EOF){\n\t\tc[i]=x;\n\t\ti++;\n\t}\n\tn=i;\n\tc[n]='\\0';\n\tfclose(fp);\n\t\n\tchar f[20]="write00.txt";\n\tfor(i=1;i<=26;i++){\n\t\tif(f[6]=='9'){ //将输出文件从01至26排序 \n\t\t\tf[6]='0';\n\t\t\tf[5]++;\n\t\t}\n\t\telse\n\t\t\tf[6]++;\n\t\n\t\tfor(j=0;j<n;j++){ //进行暴力破解,一次将所有字母往后移动一位 \n\t\t\tif(c[j]>='a'&&c[j]<'z')\n\t\t\t\tc[j]+=1;\n\t\t\telse if(c[j]=='z')\n\t\t\t\tc[j]='a';\n\t\t\tif(c[j]>='A'&&c[j]<'Z')\n\t\t\t\tc[j]+=1;\n\t\t\telse if(c[j]=='Z')\n\t\t\t\tc[j]='A';\n\t\t}\n\t\t\n\t\tfp=fopen(f,"w");//输出文件 \n\t\tfputs(c,fp);\n\t\tfclose(fp);\n\t}\n\treturn 0;\n}
\n\n", + "tag_name": "c语言", + "cpp": "#include
\n#include <stdio.h>\nint main()\n{\n int n=0,i;\n for(i=1; i<=200; i++)\n {\n if((i%2==1)&&(i%3==1)&&(i%5==1))\n {\n n++;\n if(n<=10)\n printf("%d ",i);\n if(n==10)\n break;\n\n }\n }\n}\n
\n\n\n",
+ "tag_name": "c语言",
+ "cpp": "#include 从键盘输入两个正整数,求出它们的最小公倍数并输出所求结果。
", + "difficulty": "简单", + "answer_id": 53445460, + "answer_content": "#include<stdio.h>
\nint main() {
\n int m,n,temp,i;
\n scanf("%d%d",&m,&n);
\n if(m<n) /*比较大小,使得m中存储大数,n中存储小数*/
\n {
\n temp = m;
\n m = n;
\n n = temp;
\n }
\n for(i=m; i>0; i++) /*从大数开始寻找满足条件的自然数*/
\n if(i%m==0 && i%n==0)
\n {/*输出满足条件的自然数并结束循环*/
\n printf("%d 和 %d 的最小公倍数是: %d\\n", m, n, i);
\n break;
\n }
\n return 0;
\n}
私发点红就更好啦
\n", + "tag_name": "c语言", + "cpp": "#include输入学生成绩,\n若成绩在95分以上,输出“A”;\n若成绩在85~94分,输出“B”;\n若成绩在75~84分,输出“C”;\n若成绩在65~74分,输出“D”;\n若成绩在65分以下,输出“E”。(分别用if else 和 switch 语句完成)
", + "difficulty": "简单", + "answer_id": 53395657, + "answer_content": "\n#include "stdio.h" \n/*\n输入学生成绩,\n若成绩在95分以上,输出“A”;\n若成绩在85~94分,输出“B”;\n若成绩在75~84分,输出“C”;\n若成绩在65~74分,输出“D”;\n若成绩在65分以下,输出“E”。(分别用if else 和 switch 语句完成)\n*/\nint main(){\n\tint score;\n\t\n\tscanf("%d",&score);\n\tif(score>=95){\n\t\tprintf("A\\n");\t\n\t}else if(score>=85 && score<=94){\n\t\tprintf("B\\n");\n\t}else if(score>=75 && score<=84){\n\t\tprintf("C\\n");\n\t}else if(score>=65 && score<=74){\n\t\tprintf("D\\n");\n\t}else{\n\t\tprintf("E\\n");\n\t}\n\t\n\tprintf("以下用switch语句实现相同功能\\n");\n\tscore = score-5;\n\tscore = score/10;\n\tswitch(score){\n\t\tcase 9:\n\t\t\tprintf("A\\n");\t\n\t\t\tbreak;\n\t\tcase 8:\n\t\t\tprintf("B");\t\n\t\t\tbreak;\n\t\tcase 7:\n\t\t\tprintf("C\\n");\t\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tprintf("D\\n");\t\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tprintf("E\\n");\n\t\t\tbreak;\n\t}\n\t\n\t\n}
\n\n\n", + "tag_name": "c++", + "cpp": "#include \"stdio.h\" \nint main(){\n\tint score;\n\tscanf(\"%d\",&score);\n\tif(score>=95){\n\t\tprintf(\"A\\n\");\t\n\t}else if(score>=85 && score<=94){\n\t\tprintf(\"B\\n\");\n\t}else if(score>=75 && score<=84){\n\t\tprintf(\"C\\n\");\n\t}else if(score>=65 && score<=74){\n\t\tprintf(\"D\\n\");\n\t}else{\n\t\tprintf(\"E\\n\");\n\t}\n\tprintf(\"以下用switch语句实现相同功能\\n\");\n\tscore = score-5;\n\tscore = score/10;\n\tswitch(score){\n\t\tcase 9:\n\t\t\tprintf(\"A\\n\");\t\n\t\t\tbreak;\n\t\tcase 8:\n\t\t\tprintf(\"B\");\t\n\t\t\tbreak;\n\t\tcase 7:\n\t\t\tprintf(\"C\\n\");\t\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tprintf(\"D\\n\");\t\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tprintf(\"E\\n\");\n\t\t\tbreak;\n\t}\n}", + "topic_link": "https://bbs.csdn.net/topics/600470148", + "status": 1, + "keywords": "B树,算法高阶,高级数据结构,B树上的基本操作", + "license": "csdn.net", + "notebook": { + "cpp": "https://codechina.csdn.net/csdn/csdn-daily-code/-/jupyter/master/data/notebook/answer/ipynb/cpp/27.ipynb?type=file" + }, + "notebook_enable": 1 +} \ No newline at end of file diff --git a/data_backup/cpp_code_json/28.json b/data_backup/cpp_code_json/28.json new file mode 100644 index 000000000..b037b3f75 --- /dev/null +++ b/data_backup/cpp_code_json/28.json @@ -0,0 +1,17 @@ +{ + "question_id": 7439547, + "question_title": "链表问题", + "question_content": "
1. 有一个有序的数组。现输入一个数,要求按原来的规律将它插入数组中(使用指针实现)。
\n\n【样例输入】
\n\n7
\n\n【样例输出】
\n\n26 18 16 14 12 9 8 7 6 4 3
", + "difficulty": "中等", + "answer_id": 53414064, + "answer_content": "\n\n\n#include<iostream>\nusing namespace std;\n#define length 10\n\nint main(){\n\tint *m = new int();\n\tcin>>*m;\n\tint a[length] = {26,18,16,14,12,9,8,6,4,3};\n\tint *b = a;\n\tint *c = a;\n\tint i, j;\n\tfor(i = 0; i < length; i++){\n\t\tif(*m > *b){\n\t\t\tbreak;\n\t\t}\n\t\tb++;\n\t}\n\tfor(j = length; j > i; j--){\n\t\t*(b-i+j) = *(b-i+j-1);\n\t}\n\t*b = *m;\n\tfor(j = 0; j < length+1; j++){\n\t\tcout<<*(c++)<<' ';\n\t}\n\treturn 0;\n}
\n\n\n", + "tag_name": "c++", + "cpp": "#include
代码如下,如有帮助,请采纳一下,谢谢。
\n\n\n#include <stdio.h>\nint main()\n{\n\tint a[10],i,max,maxindex;\n\tfor(i =0;i<10;i++)\n\t\tscanf("%d",&a[i]);\n\n\t//找最大的数\n\tmax = a[0]; //先将最大的数设为0\n\tmaxindex = 0;//最大的数的索引\n\tfor (i =1;i<10;i++)\n\t{\n\t\tif(a[i] > max)\n\t\t{\n\t\t\tmax = a[i]; //替换最大值\n\t\t\tmaxindex = i; //记录最大值索引\n\t\t}\n\t}\n\tprintf("最大值%d,索引:%d\\n",max,maxindex);\n\treturn 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
给定n(n是偶数,且n≤100)个正整数,所有正整数均≤10000;从前往后依次遍历这个数组,每两个为一组进行处理,若一组中的任意一个元素能被3或者5整除,则交换这两个元素的位置;否则不动;全部处理完成后,逆序输出整个数组。\n例如给定序列: 99 35 83 38 , 处理完成后得到:38 83 99 35\n给定序列: 6 7 3 4 ,处理完成后得到:3 4 6 7
", + "difficulty": "困难", + "answer_id": 53420448, + "answer_content": "\n#include <stdio.h>\n#include <math.h>\n\nint main()\n{\n\nint i,j,n,a[10005],t;\nscanf("%d",&n);\nfor(i=0;i<n;i++){\n scanf("%d",&a[i]);\n if(i%2==1){\n if((a[i]%3==0)||(a[i]%5==0)||(a[i-1]%3==0)||(a[i-1]%5==0)){\n t=a[i];\n a[i]=a[i-1];\n a[i-1]=t;\n }\n }\n}\nfor(i=n-1;i>=0;i--){\n printf("%d ",a[i]);\n}\n\n\n}
\n\n\n",
+ "tag_name": "c语言",
+ "cpp": "#include 计算所有4位正整数中同时能被13和20整除的数的和, 并同时做到如下显示:\n①显示这些数:\n②显示这些数的个数:\n③显示这些数的和。
", + "difficulty": "简单", + "answer_id": 53426095, + "answer_content": "代码:
\n\n\n#include "stdio.h"\n\nint main()\n{\n\tint i = 1000;\n\tint count = 0;\n\tint sum = 0;\n\tprintf("所有4位正整数中同时能被13和20整除的数:\\n");\n\tfor(i = 1000;i<10000;i++)\n\t{\n\t\tif(i % 13 == 0 && i % 20 == 0)\n\t\t{\n\t\t\tcount++;\n\t\t\tsum = sum + i;\n\t\t\tprintf("%d、",i);\n\t\t}\n\t}\n\tprintf("\\n这些数一共有%d个\\n",count);\n\tprintf("这些数的和是:%d\\n",sum);\n}
\n\n截图
\n\n\n", + "tag_name": "c语言", + "cpp": "#include \"stdio.h\"\nint main()\n{\n\tint i = 1000;\n\tint count = 0;\n\tint sum = 0;\n\tprintf(\"所有4位正整数中同时能被13和20整除的数:\\n\");\n\tfor(i = 1000;i<10000;i++)\n\t{\n\t\tif(i % 13 == 0 && i % 20 == 0)\n\t\t{\n\t\t\tcount++;\n\t\t\tsum = sum + i;\n\t\t\tprintf(\"%d、\",i);\n\t\t}\n\t}\n\tprintf(\"\\n这些数一共有%d个\\n\",count);\n\tprintf(\"这些数的和是:%d\\n\",sum);\n}", + "topic_link": "https://bbs.csdn.net/topics/600469942", + "status": 1, + "keywords": "算法高阶,计算几何学,算法问题选编", + "license": "csdn.net", + "notebook": { + "cpp": "https://codechina.csdn.net/csdn/csdn-daily-code/-/jupyter/master/data/notebook/answer/ipynb/cpp/36.ipynb?type=file" + }, + "notebook_enable": 1 +} \ No newline at end of file diff --git a/data_backup/cpp_code_json/37.json b/data_backup/cpp_code_json/37.json new file mode 100644 index 000000000..74664e7d9 --- /dev/null +++ b/data_backup/cpp_code_json/37.json @@ -0,0 +1,18 @@ +{ + "question_id": 7436555, + "question_title": "商品优惠计算器", + "question_content": "商品优惠计算器\n使用if语句编程实现输入购货金额,输出实际付款金额。购货折扣率如下:\n购货金额≤500元 不打折\n500元<购货金额≤1000元 9折\n1000元<购货金额 8折
", + "difficulty": "简单", + "answer_id": 53408479, + "answer_content": "\n\n
\n#include <stdio.h>\n#include <ctype.h>\n#include <stdbool.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\nint main()\n{\n\tfloat money=0.0;\n\tfloat pay=0.0;\n\t\n\tbool run = true;\n\twhile(run)\n\t{\n\t\tprintf("\\n请输入购货金额:\\n");\n\t\tscanf("%f", &money);\n\t\tif(money >=1000)\n\t\t{\n\t\t\tpay=money*0.8;\n\t\t\tprintf("打八折,应付金额:%.2f\\n",pay);\n\t\t}\n\t\telse if((money >500)&&(money <=1000))\n\t\t{\n\t\t\tpay=money*0.9;\n\t\t\tprintf("打九折,应付金额:%.2f\\n",pay);\n\t\t}\n\t\telse if(money <=500)\n\t\t{\n\t\t\tprintf("不打折,应付金额:%.2f\\n",money);\n\t\t}\n\t}\n\t\n\treturn 0;\n\n}
\n\n\n",
+ "tag_name": "c语言",
+ "cpp": "#include #include<stdio.h>
\n#include<string.h>
\nint main()
\n{
\n //void max(char[], char[]);
\n char a[100], b[100],c[100];
\n int i, j= 0, k = 0, n,m;
\n gets(a);
\n n = strlen(a);
\n for (i = 0; i<n; i++)
\n {
\n if ((a[i] >= 'A'&&a[i] <= 'Z') || (a[i] >= 'a'&&a[i] <= 'z'))
\n {
\n b[j++] = a[i];
}
\n
\n else if (j > k)
\n {
\n for (m = 0; m < j; m++)
\n
\n {
\n c[m] = b[m];
\n
\n }
\n k = m;
\n
\n j = 0;
}
\n else if (j <= k)
\n j = 0;
\n }
\n c[k] = '\\0';
\n printf("%s", c);
\n}
", + "difficulty": "中等", + "answer_id": 53410843, + "answer_content": "
楼主的代码修改如下,供参考:
\n\n\n#include<stdio.h>\n#include<string.h>\nint main()\n{\n //void max(char[], char[]);\n char a[100], b[100],c[100];\n int i, j=0, k=0, n,m;\n gets(a);\n n = strlen(a);\n for (i = 0; i<n+1; i++)//for (i = 0; i<n; i++)\n {\n if ((a[i] >= 'A'&&a[i] <= 'Z') || (a[i] >= 'a'&&a[i] <= 'z'))\n {\n b[j++] = a[i];\n }\n\n else if (j > k)\n {\n for (m = 0; m < j; m++)\n\n {\n c[m] = b[m];\n\n }\n k = j;//k = m;\n j = 0;\n\n }\n else if (j <= k)\n j = 0;\n\n\n }\n c[k] = '\\0';\n printf("%s\\n", c);\n \n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
#include <stdio.h>\n \n#define ARR_LEN 255 /*数组长度上限*/\n#define elemType int /*元素类型*/\n \n/* 冒泡排序 */\n/* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 */\n/* 2. 对所有元素均重复以上步骤,直至最后一个元素 */\n/* elemType arr[]: 排序目标数组; int len: 元素个数 */\nvoid bubbleSort (elemType arr[], int len) {\n elemType temp;\n int i, j;\n for (i=0; i<len-1; i++) /* 外循环为排序趟数,len个数进行len-1趟 */\n for (j=0; j<len-1-i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */\n if (arr[j] > arr[j+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */\n temp = arr[j];\n arr[j] = arr[j+1];\n arr[j+1] = temp;\n }\n }\n}\n \nint main (void) {\n elemType arr[ARR_LEN] = {4286,3185,2895,3550,2745};\n int len = 5;\n int i;\n \n bubbleSort (arr, len);\n for (i=0; i<len; i++)\n printf ("%d\\t", arr[i]);\n putchar ('\\n');\n \n return 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
代码如下,如有帮助,请采纳一下,谢谢。
\n\n\n#include <stdio.h>\n#include <stdlib.h>\n\nint isPrime(int n)\n{\n\tint i = 2;\n\tif(n<2) return 0;\n\tfor (i=2;i<n;i++)\n\t{\n\t\tif(n%i == 0)\n\t\t\treturn 0;\n\t}\n\treturn 1;\n}\n\nint CountPrime(int a[],int size)\n{\n\tint i =0,count = 0;\n\t//统计素数个数\n\tfor (i = 0;i<size;i++)\n\t{\n\t\tif(isPrime(a[i]))\n\t\t{\n\t\t\tprintf("%d ",a[i]);\n\t\t\tcount++;\n\t\t\tif(count%10 == 0) //每10个一行\n\t\t\t\tprintf("\\n");\n\t\t}\n\t}\n\tprintf("\\n");\n\treturn count;\n}\n\nint main()\n{\n\tint a[100],i,count = 0;\n\tfor(i = 0;i<100;i++)\n\t\ta[i] = rand()%1000;//生成0-999以内的随机数\n\t\n\tprintf("素数的个数:%d\\n",CountPrime(a,100));\n\treturn 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
\n#include<stdio.h>\nint main()\n{\nchar x,y;\nprintf("请输入一个字符:");\nscanf("%c",&x);\nif(x>='A'&&x<='Z')\n{\ny=x+32;\nprintf("此字母是一个大写字母,转换后的小写字母是:%c",y);\n}\nelse if(x>='a'&&x<='z')\n{\ny=x-32;\nprintf("此字母是一个小写字母,转换后的大写字母是%c",y);\n}\nelse\n{\nprintf("%c",x);\n}\nreturn 0;\n}\n
\n\n记得点个采纳,谢谢
\n", + "tag_name": "c语言", + "cpp": "#include初始化一个字符数组为"The best or nothing",并将其中每个单词的字母顺序翻转后打印输出到屏幕。要求:\n1、字符数组的初始化在程序运行时由用户输入;\n2、字符数组的翻转和结果输出功能通过函数实现;\n3、字符数组不能定义成全局变量。
", + "difficulty": "简单", + "answer_id": 53408492, + "answer_content": "你要的结果是什么样的?
\n\n输入:The best or nothing
\n\n输出:ehT tseb ro gnihton
\n\n这样的吗?如果是这样的,代码如下:
\n\n\n#include <stdio.h>\n#include <string>\nvoid trans(char* p,int len)\n{\n\tchar* s = new char[len];\n\tmemcpy(s,p,len);\n\tfor (int i = 0; i < len; i++)\n\t{\n\t\tp[i] = s[len-1-i];\n\t}\n\tdelete[] s;\n\ts = 0;\n}\nvoid transfun(char* p,int len)\n{\n\tint start = 0;\n\tint i = 0;\n\tint shift = 0;\n\twhile(i < len)\n\t{\n\t\tfor (i = start; i < len;i++)\n\t\t{\n\t\t\tif(p[i] == ' ')\n\t\t\t\tbreak;\n\t\t}\n\t\t\n\t\ttrans(p+shift,i-start);\n\t\tshift += i-start+1;\n\t\tstart = i+1;\n\t\ti +=1;\n\t}\n\t\t\n}\nvoid output(char* p)\n{\n\tprintf("%s\\n",p);\n}\nint main()\n{\n\tchar buf[1000] = {0};\n\tprintf("请输入字符串:");\n\tgets(buf);\n\ttransfun(buf,strlen(buf));\n\toutput(buf);\n\t//getchar();\n\t//getchar();\n\treturn 0;\n}\n
\n\n\n", + "tag_name": "c语言", + "cpp": "#include
现在有一个网站上半年的商品销售量,请你写一段代码帮助店主统计前半年的总销量和平均销量。\n商品销售表\n1月份\t2月份\t3月份\t4月份\t5月份\t6月份\t总销量\t平均销量\n64\t53\t77\t59\t61\t42\t0\t0\n(1)函数中应定义一个包含8个元素的一维数据,用来存放6个月的商品销量和统计后的总销量及平均销量;\n(2)完成6个月销量的输入;\n(3)计算半年的总销量及平均销量;\n(4)按照程序运行效果图,输出商品销量表。\n![图片说明](https://img-ask.csdn.net/upload/202005/16/1589596638_852927.jpg)
", + "difficulty": "简单", + "answer_id": 1274957, + "answer_content": "表格上可能有点不同,你可以再改改\n```\n#include【题目描述】\n输入一个班级的学生人数(学生人数不超过60人),再输入该班学生每个学生的学号和某门课的成绩,要求用函数编程实现输出最高分及其学号。\n【输入形式】\n第一行输入学生人数N,接下来的N行分别输入N个学生的学号和成绩,学号和成绩均为整数,学号范围为1~9999,成绩范围为0~100。\n【输出形式】\n一行,两个正整数,分别表示最高分和对应的学号。如果最高分有相同的,则输出最先出现的最高分和对应的学号。\n【样例输入1】\n3\n1101 85\n1102 95\n1103 90\n【样例输出1】\n95 1102
\n\n#include<iostream>\n#include<cstring>\nusing namespace std;\nvoid findmax(int score[],int num[],int *pmax,int *pmaxnum);\nint main()\n{\n\tint n,i,max,maxnum;\n\tint score[100];\n\tchar num[100];\n\tcin>>n;//输入n \n\tfor(int i=0;i<n;i++)\n\t{\n\t\tcin>>num[i]>>score[i];//分别输入学号分数 \n\t}\n\tfindmax(score,num,n);//调用指针函数 \n} \nvoid findmax(int *score,char *num,int n)//找出最大分数和学号 \n{\n\tint max=*score;int maxnum=*num;//初始化最大分数和学号 \n\tfor(int i=0;i<n;i++)\n\t{\n\t\tif(score[i]>*max) \n\t\t{\n\t\t\t*pmax=score[i];\n\t\t\t*pmaxnum=num[i];\n\t\t}\n\t\t\n\t}\n\tcout<<*max<<" "<<*maxnum<<endl;\n\treturn 0;\n}
\n", + "difficulty": "中等", + "answer_id": 53443352, + "answer_content": "
代码修改如下:
\n\n\n#include<iostream>\n#include<cstring>\nusing namespace std;\nvoid findmax(int score[],int num[],int n,int &max,int &maxnum);\nint main()\n{\n\tint n,max,maxnum;\n\tint score[100];\n\tint num[100];\n\tcin>>n;//输入n \n\tfor(int i=0;i<n;i++)\n\t{\n\t\tcin>>num[i]>>score[i];//分别输入学号分数\n\t}\n\tfindmax(score,num,n,max,maxnum);//调用指针函数 \n} \nvoid findmax(int *score,int *num,int n,int &max,int &maxnum)//找出最大分数和学号 \n{\n\tmax=*score;\n\tmaxnum=*num;//初始化最大分数和学号 \n\tfor(int i=0;i<n;i++)\n\t{\n\t\tif(score[i]>max) \n\t\t{\n\t\t\tmax=score[i];\n\t\t\tmaxnum=num[i];\n\t\t}\n\t}\n\tcout<<max<<" "<<maxnum<<endl;\n\n}\n
\n\n\n", + "tag_name": "c++", + "cpp": "#include
\n
", + "difficulty": "简单", + "answer_id": 53424293, + "answer_content": "\n#include<stdio.h>\n#define X 7\n\nint main()\n{\n int i=0;\n int mod,num=720;\n\n while(num)\n {\n mod=num%X;\n num/=X;\n if(mod!=0)\n printf("%d*7^%d%c",mod,i,(num>0)?'+':'\\n');\n i++;\n }\n\n return 0;\n}
\n\n\n", + "tag_name": "c语言", + "cpp": "#include