本文章向你们介绍编程打卡:C语言趣味编程习题做,主要内容包括百钱百鸡问题、问题描述、设计思路、程序流程图、代码、执行结果、打渔还是晒网?、使用实例、应用方法、基本知识点总结和须要注意事项,具有一定的参考价值,需要的同学可以参考一下。
编程打卡:C语言趣味编程习题做百钱百鸡问题问题描述
一只 Cock 卖 5 钱,Hen 卖 3 钱,chicken 卖 0.33333333 钱,真正工作的时侯不要用浮点数存钱啊白痴!然后100钱买了100只鸡百钱买鸡问题的伪代码,问各买了多少只。
设计思路
解不定方程,穷举。
两层循环遍历各类鸡的个数,第三种鸡可以直接相加得出结果,然后判定单价是否为100即可
程序流程图代码
#include
using namespace std;
int main()
{
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 33; j++) {
int k = 100 - i - j;
if (i * 5 + j * 3 + (float)k/3 == 100)
cout << "cock = " << i << ", hen = " << j << ", chicken = " << k << endl;
}
}
}
执行结果
cock = 0, hen = 25, chicken = 75
cock = 4, hen = 18, chicken = 78
cock = 8, hen = 11, chicken = 81
cock = 12, hen = 4, chicken = 84
打渔还是晒网?问题描述
1990年1月1日开始一天打渔两天晒网百钱买鸡问题的伪代码,询问过后的一个日期是在做哪些。
设计思路
计算从1990年1月1日到寻问的日期联通过了多少天,然后对5求模。结果0,1,2则为打渔,3,4则为晒网。
逐层估算年,月,日的差即可。
程序流程图伪代码
cin >> yy >> mm >> dd
daySum(yy,mm,dd)
if daySum % 5 <= 2
cout << "打渔"
else
cout << "晒网"
代码
#include
using namespace std;
int perMonth[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int getSum(int yy,int mm,int dd)
{
int sum;
for (int i = 1990; i < yy; i++) {
if (__isleap(i))
sum += 366;
else
sum += 365;
}
for (int i = 1; i < mm; i++) {
sum += perMonth[i];
if (i == 2 && __isleap(yy))
sum ++;
}
sum += dd - 1;
return sum;
}
int main ()
{
int yy,mm,dd;
cin >> yy >> mm >> dd;
int sum = getSum(yy,mm,dd);
if (sum % 5 <= 2)
cout << "打渔" << endl;
else
cout << "晒网" << endl;
}