当前位置:网站首页>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++企鹅圈
边栏推荐
猜你喜欢

Multiplication, DFS order

进程间通信学习笔记

Interprocess communication study notes

VS warning LNK4099: No solution found for PDB

类似 MS Project 的项目管理工具有哪些

观察者(observer)模式(一)

The sword refers to offer17---print the n digits from 1 to the largest

Installation problem corresponding to tensorflow and GPU version

倍增、DFS序

《实战》基于电商领域的词性提取及其决策树模型建模
随机推荐
Meta元宇宙部门第二季度亏损28亿 仍要继续押注?元宇宙发展尚未看到出路
Word 表格跨页,仍然显示标题
《实战》基于电商领域的词性提取及其决策树模型建模
分布式.幂等性
tensorflow与GPU版本对应安装问题
221. 最大正方形
Distributed. Distributed lock
Are you still working hard on the limit of MySQL paging?
pc端判断当前使用浏览器类型
斩获BAT、TMD技术专家Offer,我都经历了什么?
coldfusion文件读取漏洞(CVE-2010-2861)
勾股数元组 od js
小黑leetcode之旅:104. 二叉树的最大深度
What have I experienced when I won the offer of BAT and TMD technical experts?
35. Reverse linked list
黄东旭:TiDB的优势是什么?
Mysql:Invalid default value for TIMESTAMP
一个无经验的大学毕业生,可以转行做软件测试吗?我的真实案例
Parameter introduction and selection points of wireless module
基于Keras_bert模型的Bert使用与字词预测