C语言三天打鱼两天晒网
C语言选择与循环控制结构常见习题与答案

1.猜数字小游戏:每次程序随机生成一个数字,用户输入数字进行猜测,十回合内猜出数据则胜利,否则失败,可重复游戏。
代码如下:#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){int magic;int guess;int count;int ret;char reply;srand(time(NULL));do{magic = rand()%100+1; //产生1到100之间的随机数//count = 0;do{do{printf("Please guess a magic number:");ret = scanf("%d",&guess);if(ret!=1){while(getchar()!='\n');}}while(ret!=1||guess<1||guess>100); //如果输入不是1到100之间的数字则连续读取//count = count+1;if(guess>magic)printf("Wrong!Too big!\n");else if (guess<magic)printf("Wrong!Too small!\n");else{printf("Right!\n");printf("The number is :%d\n",magic);}}while(guess!=magic&&count<10);if (magic==guess)printf("count = %d\n",count);if (magic!=guess)printf("You lose!");printf("Do you want to continue(Y/N or y/n)?\n");scanf(" %c",&reply);}while((reply=='y')||(reply=='Y'));return 0;}2.任意时间时钟时针与分针的夹角:钟面上的时针和分针之间的夹角总是在 0 度~ 359 度之间。
C语言趣味程序设计——题目百例

Contest - 2011级C语言课程大作业Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public写在最前:本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了………………..由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的….呵呵……..有一两个….偷了下懒哦………提供原题目还有本人自己的解答的源代码。
感谢大家的。
建议…………….问题A: 趣味程序设计_狼追兔子时间限制: 1 Sec 内存限制: 128 MB提交: 341 解决: 63[提交][状态][讨论版]题目描述一只兔子躲进了n个环形分布的洞的某一个中。
狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。
以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?输入有多组测试数据,读取到文件结尾符为止。
每组测试数据输入n(2≤n≤100),即洞穴个数。
输入到文件结尾符为止。
输出兔子可能藏匿的洞。
如果不止一个,按从小到大的顺序输出。
如果不存在,输出空行。
样例输入10815样例输出2 4 7 92 4 5 7 8 9 11 12 14提示用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。
通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。
循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。
#include<stdio.h>#include<string.h>int ok[110];int main(){int n,s,i,find;while(scanf("%d",&n)!=EOF){memset(ok,0,sizeof(ok));for(i=1;i<=200;i++)if(!ok[find=(i*(i+1)/2)%n])if(find==0)ok[n]=1;elseok[find]=1;for(s=0,i=1;i<=n;i++)s+=ok[i];for(i=1,find=0;i<=n;i++)if(!ok[i]){if(find!=(n-s-1)){printf("%d ",i);find++;}elseprintf("%d",i);}printf("\n");}return 0;}问题B: 趣味程序设计_巧夺偶数时间限制: 1 Sec 内存限制: 128 MB提交: 174 解决: 73[提交][状态][讨论版]题目描述桌子上有25颗棋子。
C语言实验题及参考答案

实验一1、计算整数各位数字之和(10 分)输入一个3 位正整数,将其每一位的数字相加,输出和输入格式:输入一个3 位正整数。
变量数据类型为unsigned 。
输出格式:输出整数每一位相加后的整数和。
输入样例:输出样例:【参考答案】#include "" int main(){ unsigned int a,ge,shi,bai,sum;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;sum=ge+shi+bai;printf("%d\n",sum);return 0;}2、计算代数表达式(10 分)求:输入格式:输入角度x。
变量数据类型为double 。
π 为。
输出格式:输出y 的值,精确到小数点后2 位。
输入样例:输出样例:【参考答案】#include <>#include <>#define PIint main(){double x,y;scanf("%lf",&x); y=sqrt((sin(60*PI/180)+1)*(sin(30*PI/180)+1)/cos(x*PI/180));printf("%.2lf",y);return 0;}3、逆序的三位数 (10 分)程序每次读入一个正3 位数,然后输出按位逆序的数字。
有结尾的0 时,输出不应带有前导的0。
比如输入700,输入格式:每个测试是一个3 位的正整数。
输出格式:输出按位逆序的数。
输入样例:输出样例:注意:当输入的数字含输出应该是7。
【参考答案】#include ""int main(){ int a,ge,shi,bai,b;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;b=ge*100+10*shi+bai;printf("%d\n",b);return 0;}4、求整数均值 (10 分)本题要求编写程序,计算4 个整数的和与平均值。
c语言上机实验题及参考答案

5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
C语言程序设计及实验指导练习及习题参考答案(8--10)

C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。
解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。
因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。
8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。
请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。
解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。
C语言编程题47686

1.短信计费用手机发短信,一般一条短信资费为 0.1 元,但限定每条短信的内容在 70 个字以内(包括 70个字)。
如果你所发送的一条短信超过了 70个字,则大多数手机会按照每 70 个字一条短信的限制把它分割成多条短信发送。
假设已经知道你当月所发送的每条短信的字数,试统计一下你当月短信的总资费。
#include <set>#include <map>#include <vector>#include <cstdio> #include <cstring>#include <iostream>#include <algorithm>#define ll long long#define inf 47using namespace std;int n;int main(){cin >> n;double ans = 0;for(int i = 1; i <= n; i++){int x;cin >> x;ans = ans + ((x - 1) / 70 + 1) * 0.1;}printf("%.1lf\n", ans);return 0;}2.集体照医学部口腔 3 班 n 位同学约定拍集体照, n 大于 1 且不超过 100 。
摄影师要求同学按照身高站成两排,保证第二排的人身高都要大于等于第一排的人,且第二排的人数和第一排的人数相等或者比第一排多一个人。
输入 n 位同学的身高,请问第二排中身高最矮的人的身高是多少?#include <set>#include <map>#include <vector>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define ll long long#define inf 47using namespace std;int n;int a[105];int main(){while(scanf("%d", &n)){if(n == 0)return 0;for(int i = 1; i <= n; i++) cin >> a[i];sort(a + 1, a + n + 1); cout << a[n / 2 + 1] << endl;}return 0;}3.1020 跳格问题有一种游戏,在纸上画有很多小方格,第一个方格为起点(S),最后一个方格为终点。
C语言三天打鱼两天晒网

printf("自从1990年1月1日起【三天打鱼两天晒网】\n");
printf("问这个输入的某一天里是【打鱼】还是【晒网】\n");
printf("n=年y=月r=日\n");
printf("\n*******************************************\n");
for(i=0;i<10000000;i++)
{
printf("请输入年月日:");
scanf("%d%d%d",&n,&y,&r);
if(n<1990)
{
printf("\n无效日期,退出程序\n");
break;
}
else
{
if(y<1||y>12)
{Байду номын сангаас
printf("\n无效日期,退出程序\n");
{
printf("\n无效日期,退出程序\n");
break;
}
else if((y==4||6||9||11)&&(r>30||r<1))
{
printf("\n无效日期,退出程序\n");
break;
}
else
{
sum1 = fun1(n,y,r);//函数的调用
sum2 = fun2(n,y,r);
for(i=1990;i<n;i++)
C++编程语言实现“三天打鱼两天晒网”的示例代码

}
std::cout << "总共打鱼:" << totalFish << " 天" << std::endl; std::cout << "总共洒网:" << totalNet << " 天" << std::endl;
以下是使用 C++编程语言实现“三天打鱼两天晒网”的示例代码:
cpp 复制代码
#include <iostream>
int main() { int days; std::cout << "请输入天数:"; std::cin >> days;
int totalFish = 0; int totalNet = 0;
return ; }
这段代码首先会要求用户输入天数,然后使用循环来计算在这些天数内打鱼和洒网的总天 数。根据“三天打鱼两天晒网”的规则,如果天数是 5 的倍数或者余数为 4,就表示是洒网的 天数,否则就是打鱼的天数。最后,程序会输出打鱼和洒网的总天数。
请注意,这只是一个简单的示例代码,实际应用中可能需要更多的逻辑和功能来处理不同的 情况和需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("\n 无效日期,退出程序\n");
break; } else if((y==4||6||9||11)&&(r>30||r<1)) {
printf("\n 无效日期,退出程序\n");
} else
{
break;
sum1 = fun1(n,y,r);//函数的调用
sum2 = fun2(n,y,r); sum = sum1+sum2; if((sum%5==4)||(sum%5==0)) {
for(i=1;i<y;i++)//计算月份天数 {
if(y==1||3||5||7||8||10||12) {
sum2 = sum2 + 31;
} else if(y=2) {
sum2 = sum2 + 29; } else {
sum2 = sum2 + 30; } } } else//输入年份不为闰年时 { for(i=1;i<y;i++) { if(y==1||3||5||7||8||10||12) {
printf("\n 无效日期,退出程序\n");
break; } else if(n%4!=0&&(y=2&&(r>29||r<1))) {
printf("\n 无效日期,退出程序\n");
break; } else if((y==1||3||5||7||8||10||12)&&(r>31||r<1)) {
sum2 = sum2 + 31;
}
else if(y=2) {
sum2 = sum2 + 28; } else {
sum2 = sum2 + 30; } } } return(sum2);//返回值 }
printf("请输入年月日:"); scanf("%d%d%d",&n,&y,&r);
if(n<1990) { printf("\n 无效日期,退出程序\n"); break; }
else { if(y<1||y>12) { printf("\n 无效日期,退出程序\n"); break; }
else if(n%4==0&&(y=2&&(r>28||r<1))) {
sum1 = sum1 + 366; } else//不为润年时执行 {
sum1 = sum1 + 365; } } return(sum1);//返回值 } int fun2(int n,int y, int r)//定义函数 {
int i,sum2=0; if((n%=4&&n%100!=0)||(n%400==0))//当输入年为闰年时 {
#include<stdio.h> int fun1(int,int,int);//函数声明 int fun2(int,int,int); main() {
int n,y,r,i,sum,sum1,sum2; printf("\n*******************************************\n");//打印开头 printf("中国有句俗话叫【三天打鱼两天晒网】\n"); printf("自从 1990 年 1 月 1 日起【三天打鱼两天晒网】\n"); printf("问这个输入的某一天里是【打鱼】还是【晒网】\n"); printf("n=年 y=月 r=日\n"); printf("\n*******************************************\n"); for(i=0;i<10000000;i+);
} else
{ printf("\n 这天在打渔\n");
} }
}//借此确定输入的是否有效 } } int fun1(int n,int y,int r)//定义函数 { int i,sum1=0; for(i=1990;i<n;i++) {
if((n%=4&&n%100!=0)||(n%400==0))//判断是否为润年 {