news 2026/5/8 21:45:14

C#初学者每日分享,每一步都算数。(12)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#初学者每日分享,每一步都算数。(12)

纸上得来终觉浅

绝知此事要躬行

1.

输入10个整数,分别统计输出正数、负数的个数。

输入描述:

输入10个整数(范围-231~231-1),用空格分隔。

输出描述:

两行,第一行正数个数,第二行负数个数

#include <stdio.h> int main() { int arr[10] = { 0 }; int i = 0; int n = 0; int m = 0; for (i = 0; i < 10; i++) { scanf("%d", &arr[i]); if (arr[i] > 0) n++; if (arr[i] < 0) m++; } printf("positive:%d\n", n); printf("negative:%d\n", m); return 0; }

2.

如果今天是“双11”(11月11日)则这件衣服打7折,“双12” (12月12日)则这件衣服打8折,如果有优惠券可以额外减50元(优惠券只能在双11或双12使用),求最终所花的钱数。

示例1

输入:1000.0 11 11 1

输出:650.00

示例2

输入:999.8 12 12 0

输出:799.84

示例3

输入:66.6 11 11 1

输出:0.00

#include <stdio.h> int main() { float price = 0; int a = 0; int m=11; int n = 0; scanf("%f %d %d %d", &price,&m, &a, &n); float sum = 0; //统一计算折扣 if (a == 11) sum = price * 0.7; else if (a == 12) sum = price * 0.8; else { printf("无效类型"); return 1; } //统一处理n=1的优惠 if (n == 1) sum = (sum > 50) ? (sum - 50) :0; //最终价格不能小于0 printf("%.2f", sum); return 0; }

3.

在 1kg 以内的按起步价 20 元计算,超出部分按每 kg 1元计算,不足 1kg 部分按 1kg计算。如果加急的话要额外付五元,总共要支付多少快递费

输入描述:

第一行输入一个单精度浮点数 a 和一个字符 b ,a 表示牛牛要寄的快递的重量,b表示牛牛是否选择加急,'y' 表示加急 ,'n' 表示不加急。

#include <stdio.h> #include<math.h> int main() { double a=0; char ch=0; double sum=0; scanf("%lf %c",&a,&ch); if(a<=1) sum=20.0; else sum=20+ceil(a-1)*1; //ceil用来向上取整 if(ch=='y') printf("%.0lf",sum+5); if(ch=='n') printf("%.0lf",sum); return 0; }

4.

在一行上输出一个字符串,表示三角形的类型,具体地:
∙ ∙如果三角形是等边三角形,则输出 Equilateral triangle!Equilateral triangle!;
∙ ∙如果三角形是等腰三角形,则输出 Isosceles triangle!Isosceles triangle!;
∙ ∙如果三角形是普通三角形,则输出 Ordinary triangle!Ordinary triangle!;
∙ ∙如果不能构成非退化三角形,则输出 Not a triangle!Not a triangle!。

#include <stdio.h> int main() { int a,b,c; scanf("%d %d %d",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) { if(a==b&&a==c&&b==c) printf("Equilateral triangle!"); else if(a==b||b==c||a==c) printf("Isosceles triangle!"); else printf("Ordinary triangle!"); } else { printf("Not a triangle!"); } return 0; }

5.

从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根,当a = 0时,输出“Not quadratic equation”,当a ≠ 0时,根据△ = b2 - 4*a*c的三种情况计算并输出方程的根。

输入描述:

多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax2 + bx + c = 0的系数。

输出描述:

针对每组输入,输出一行,输出一元二次方程ax2 + bx +c = 0的根的情况。

如果a = 0,输出“Not quadratic equation”;

如果a ≠ 0,分三种情况:

△ = 0,则两个实根相等,输出形式为:x1=x2=...

△ > 0,则两个实根不等,输出形式为:x1=...;x2=...,其中x1 <= x2。

△ < 0,则有两个虚根,则输出:x1=实部-虚部i;x2=实部+虚部i,即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2*a),虚部= sqrt(-△ ) / (2*a)

所有实数部分要求精确到小数点后2位,数字、符号之间没有空格。

#include<stdio.h> #include<math.h> int main() { float a,b,c; while(scanf("%f %f %f",&a,&b,&c)!=EOF) { if(a==0) printf("Not quadratic equation"); else { float s=b*b-4*a*c; if(s==0&&(-b)/2*a!=-0.00) printf("x1=x2=%.2f\n",(-b)/(2*a)); else if((-b)/2*a==-0.00) printf("x1=x2=0.00\n"); if(s>0) printf("x1=%.2f;x2=%.2f\n",((-b)-sqrt(s))/(2*a),((-b)+sqrt(s))/(2*a)); if(s<0) printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",(-b)/(2*a),(sqrt(-s)/(2*a)),(-b)/(2*a),(sqrt(-s)/(2*a))); } } return 0; }

6.

输入年份和月份,计算这一年这个月有多少天。

输入描述

多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。

输出描述

针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。

#include <stdio.h> int main() { int y,m; while(scanf("%d %d",&y,&m)!=EOF) { if(y%4==0&&y%100!=0||y%400==0) { int arr[12]={31,29,31,30,31,30,31,31,30,31,30,31}; printf("%d\n",arr[m-1]); } else { int aee[12]={31,28,31,30,31,30,31,31,30,31,30,31}; printf("%d\n",aee[m-1]); } } return 0; }

7.

计算如下数列的前 n 项和:

H(n)=1+1/2+1/3----1/n

#include <stdio.h> int main() { int n=0; scanf("%d",&n); float sum=0; int i=0; for(i=1;i<=n;i++) { float j=1.0/i; sum+=j; } printf("%f",sum); return 0; }

8.

输入一个整数n,计算 1+1/(1-3)+1/(1-3+5)+...+1/(1-3+5-...+2n-1)的值

#include<stdio.h> int main() { int i,s=1; int temp=0; double sum=0; int n=0; scanf("%d",&n); for(i=1;i<=n;i++) { temp+=s*(2*i-1); sum+=1.0/temp; s=-s; } printf("%.3lf",sum); return 0; }

9.

输入一个整数n,计算 1+(1+2)+(1+2+3)+⋯+(1+2+3+⋯+n)1+(1+2)+(1+2+3)+⋯+(1+2+3+⋯+n).

#include <stdio.h> int main() { int n=0; scanf("%d",&n); int i=0; int sum1=0; int sum2=0; for(i=1;i<=n;i++) { sum1+=i; sum2+=sum1; } printf("%d",sum2); return 0; }

10.

给定一个整数 ,请计算其所有数位之和。若 n 为负数,请先取其绝对值。

#include <stdio.h> int main() { long long n = 0; scanf("%lld", &n); int i=0; int sum = 0; if (n < 0) n = -n; for (; n!=0;) { i = n % 10; n /= 10; sum += i; } printf("%d", sum); return 0; }

11.

有一个数字魔法,给你一个正整数n,如果n为偶数,就将他变为n/2, 如果n为奇数,就将他变为乘3加1,不断重复这样的运算,经过有限步之后,一定可以得到1

#include<stdio.h> int main() { int n=0; scanf("%d",&n); int count=0; while(n!=1) { if(n%2==0) n/=2; else n=n*3+1; count++; } printf("%d",count); return 0; }

12.

写一个关机程序

1,程序运行起来后在1分钟内关机

2,但是只要输入:lrh很帅,就可以停止关机

注意:

#include<stdio.h> #include<string.h> #include<windows.h> int main() { char arr[10] = { 0 }; //关机 system("shutdown -s -t 60"); again: printf("你的电脑将在1分钟内关机,如果输入:lrh真帅,就取消关机\n"); scanf("%s", arr); //判断 if (strcmp(arr, "lrh真帅") == 0) { system("shutdown -a"); printf("关机已取消\n"); } else { goto again; } return 0; }

13.

都个字符从两段移动,向中间移动。

#include<stdio.h> #include<string.h> #include<windows.h> int main() { char arr1[] = { "Welcome to NanChang !!!" }; char arr2[] = { "#######################" }; int left = 0; int right = strlen(arr1 )- 1; while (left <= right) { arr2[right] = arr1[right]; arr2[left] = arr1[left]; printf("%s\n", arr2); //睡眠2秒钟 Sleep(2000); //单位是毫秒 system("cls"); left++; right--; } return 0; }

14.

判断某年某月有多少天

#include<stdio.h> #include<stdbool.h> bool is_leap_year(int y) { if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) //判断是否为闰年 return true; else return false; } int get_day_of_month(int y, int m) { int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; // 如果是闰年 int d = days[m]; if (is_leap_year(y) && m == 2) { d += 1; } return d; } int main() { int year = 0; int month = 0; scanf("%d %d", &year, &month); int d = get_day_of_month(year, month); printf("%d", d); return 0; }

15.

今年是2025年,想知道1~2025中有多少个包含数字9的数。包含数字的数是指有某一位是“9”的数,例如“2019”、“199”等。

#include<stdio.h> int main() { int i=0; int count =0; for(i=1;i<=2025;i++) { int tmep=i; //用临时变量操作,避免修改循环变量 i int has_nine=0; //判断是否包含 9 while(tmep!=0) { int d=tmep%10; if(d==9) { has_nine=1; break; //直接跳出循环,后面不需要判断 } tmep/=10; } if(has_nine) { count++; } } printf("%d",count); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 12:35:37

从期末考题到实战:手把手教你用8086宏实现ARM的RBIT位反转指令

从解题思维到工程实践&#xff1a;8086宏实现ARM的RBIT指令全解析 当你在学习汇编语言时&#xff0c;是否曾遇到过这样的困惑&#xff1a;课本上的例题看似简单&#xff0c;但一旦面对实际项目需求&#xff0c;却不知如何将零散的知识点串联起来&#xff1f;本文将以"用80…

作者头像 李华
网站建设 2026/4/15 12:35:19

在线教育|基于springboot + vue在线教育系统(源码+数据库+文档)​

在线教育系统 目录 基于springboot vue在线教育系统 一、前言 二、系统功能演示 详细视频演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue在线教育系统 一、前言 博主介绍…

作者头像 李华
网站建设 2026/4/15 12:32:19

QT实战:利用QProcess实现进程间通信与实时日志捕获

1. QProcess基础&#xff1a;你的跨进程通信瑞士军刀 在QT开发中&#xff0c;QProcess就像是一个万能工具箱&#xff0c;它能帮你轻松启动外部程序、执行系统命令&#xff0c;更重要的是实现进程间的数据交换。想象一下&#xff0c;你正在开发一个服务器监控工具&#xff0c;需…

作者头像 李华
网站建设 2026/4/15 12:29:36

学术专著写作不用愁,AI专著撰写工具带你开启高效创作之旅

撰写学术专著时&#xff0c;研究者需要在内容的深度和广度之间找到一个完美的平衡&#xff0c;这对许多人而言是个不小的挑战。从深度来看&#xff0c;AI写专著时的核心观点必须有一定的学术深度&#xff0c;不仅要解释“是什么”&#xff0c;还需分析“为什么”和“怎么办”。…

作者头像 李华
网站建设 2026/4/15 12:23:48

Speechless:如何3分钟完成微博PDF备份的终极完整指南

Speechless&#xff1a;如何3分钟完成微博PDF备份的终极完整指南 【免费下载链接】Speechless 把新浪微博的内容&#xff0c;导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 在数字时代&#xff0c;我们的社交媒…

作者头像 李华