当前位置:网站首页>C语言小程序 -- 常见经典练习题
C语言小程序 -- 常见经典练习题
2022-07-31 01:38:00 【南风fahaxiki】
分享5个简单的C语言小程序, 现在的你,还记得当初拼命学习的C语言么,C语言经典题型,回忆一下吧
【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填 在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:
#include <stdio.h>
int main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++) /*以下为三重循环*/
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
【程序2】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
#include <stdio.h>
int main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month) /*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum);
}
【程序3】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
2.程序源代码:
#include <stdio.h>
int main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;} /*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;} /*交换z,y的值*/
printf("small to big: %d %d %d\n",x,y,z);
}
【程序4】
题目:输出9*9口诀。
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
2.程序源代码:
#include <stdio.h>
int main()
{
int i,j,result;
printf("\n");
for (i=1;i<10;i++)
{
for(j=1;j<i;j++)
{
result=i*j;
printf("%d*%d=%-3d",i,j,result); /*-3d表示左对齐,占3位*/
}
printf("\n"); /*每一行后换行*/
}
}
【程序5】
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
2.程序源代码:
#include <stdio.h>
main()
{
int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
printf("%-5d",n);
}
}
然后今天就讲到这里啦,大家记得点赞收藏,分享转发,关注小哥哥哦! 最后,如果你想学或者正在学C/C++编程,可以加入小编的编程学习C/C++企鹅圈
边栏推荐
- 初识C语言 -- 数组
- 太阳能板最大面积 od js
- What have I experienced when I won the offer of BAT and TMD technical experts?
- 小黑leetcode之旅:117. 填充每个节点的下一个右侧节点指针 II
- Word 表格跨页,仍然显示标题
- Chi-square distribution of digital image steganography
- MySql installation and configuration super detailed tutorial and simple method of building database and table
- 【genius_platform软件平台开发】第七十四讲:window环境下的静态库和动态库的一些使用方法(VC环境)
- Teach you how to configure Jenkins automated email notifications
- 数字图像隐写术之卡方分布
猜你喜欢
Analyze the capabilities and scenarios of the cloud native message flow system Apache Pulsar
RTL8720DN开发笔记一 环境搭建与mqtt实例
ROS Action communication
case语句的综合结果,你究竟会了吗?【Verilog高级教程】
Parameter introduction and selection points of wireless module
类似 MS Project 的项目管理工具有哪些
coldfusion文件读取漏洞(CVE-2010-2861)
数字图像隐写术之JPEG 隐写分析
What have I experienced when I won the offer of BAT and TMD technical experts?
关于Redis相关内容的基础学习
随机推荐
认识DTU什么是4GDTU设备
87. Convert String to Integer
coldfusion8后台计划任务拿shell
Distributed. Distributed lock
九州云获评云计算标准化优秀成员单位
Gateway路由的配置方式
Xiaohei's leetcode journey: 104. The maximum depth of a binary tree
什么是理想的大学生活?
倍增、DFS序
35. 反转链表
勾股数元组 od js
35. Reverse linked list
rpm install postgresql12
Mysql:Invalid default value for TIMESTAMP
《MySQL数据库进阶实战》读后感(SQL 小虚竹)
rpm安装postgresql12
Jiuzhou Cloud was selected into the "Trusted Cloud's Latest Evaluation System and the List of Enterprises Passing the Evaluation in 2022"
一个无经验的大学毕业生,可以转行做软件测试吗?我的真实案例
GCC Rust获批将被纳入主线代码库,或将于GCC 13中与大家见面
MySQL (6)