当前位置:网站首页>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++企鹅圈
边栏推荐
- pc端判断当前使用浏览器类型
- Crawler text data cleaning
- 24. Please talk about the advantages and disadvantages of the singleton pattern, precautions, usage scenarios
- 87. 把字符串转换成整数
- leetcode-952:按公因数计算最大组件大小
- Teach you how to configure Jenkins automated email notifications
- 软件测试要达到一个什么水平才能找到一份9K的工作?
- JPEG Steganalysis of Digital Image Steganography
- 35. 反转链表
- 【网络安全】文件上传靶场通关(1-11关)
猜你喜欢
随机推荐
射频器件的基本参数1
程序员转正述职报告/总结
822. 走方格
小黑leetcode之旅:104. 二叉树的最大深度
Fiddler抓包模拟弱网络环境测试
倍增、DFS序
35. 反转链表
分布式.幂等性
观察者(observer)模式(一)
Installation problem corresponding to tensorflow and GPU version
内网渗透——提权
4G通信模块CAT1和CAT4的区别
1.非类型模板参数 2.模板的特化 3.继承讲解
MySQL (6)
case语句的综合结果,你究竟会了吗?【Verilog高级教程】
GCC Rust is approved to be included in the mainline code base, or will meet you in GCC 13
成为比开发硬气的测试人,我都经历了什么?
Kyushu cloud as cloud computing standardization excellent member unit
TiDB 在长银五八消费金融核心系统适配经验分享
16、注册中心-consul









