[Coursera 计算导论与C语言基础]第六周

编程题#1:苹果和虫子

你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
输入仅一行,包括n,x和y(均为整数)。

输出也仅一行,剩下的苹果个数

#include<stdio.h>
int main()
{
	int n,x,y,result;
	n=0;
	x=0;
	y=0;
	result=0;
	scanf("%d%d%d",&n,&x,&y);
	if (y%x!=0)
	{
		result=n-(y/x+1);
	}
	else
	{
		result=n-(y/x);
	}
	printf("the result is:%d\n",result);
	return 0;
}
编程题#2:大象喝水
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。

输出一行,包含一个整数,表示大象至少要喝水的桶数。

#include <stdio.h>
int main()
{
       double pi=3.14159;
    int h,r,x;
    double v,a;
    scanf("%d%d",&h,&r);
    v=h*r*r*pi;
    x=20000/v;
    a=x*v;
    if(a<20000) x=x+1;
    printf("%d\n",x);
       return 0;
}
编程题#3:最高的分数
孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?
输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。

输出一个整数,即最高的成绩。

#include <stdio.h>
int main()
{
	int n,i,score,max;
	n=i=score=max=0;
	printf("please input number:");
    scanf("%d",&n);
	printf("please input score:");
    for(i=0;i<n;i++)
	{
		scanf("%d",&score);
		if(score>max) 
			max=score;
	}
    printf("the max score is %d\n",max);
    return 0;
}
编程题#4:最大奇数与最小偶数之差的绝对值
输入6个正整数,且这6个正整数中至少存在一个奇数和一个偶数。
设这6个正整数中最大的奇数为a,最小的偶数为b,求出|a-b|的值
输入为一行,6个正整数,且6个正整数都小于100
输入保证这6个数中至少存在一个奇数和一个偶数

输出为一行,输出最大的奇数与最小的偶数之差的绝对值

#include <stdio.h>
#include<math.h>
int main()
{
	int i,a,b,result,x[6];
	i=a=result=0;
	b=101;
	int j=0;
	int k=0;
	for(i=0;i<6;i++)
	{
		scanf("%d",&x[i]);//输入数字
		if(x[i]>100||a<0)
		{
			printf("please put another number:");//判断是否为小于100的正整数
			scanf("%d",&x[i]);
		}
	}
	for(i=0;i<6;i++)
	{
		if(x[i]%2==0)
		{
			j++;
			if(x[i]<b)
				b=x[i];
		}
		if(x[i]%2!=0)
		{
			k++;
			if(x[i]>a)
				a=x[i];
		}
	}
	if(j==0 || k==0)
	{
		printf("error\n");
		return 0;
	}
	result=abs(a-b);
	printf("the result is:%d\n",result);
	return 0;
}

编程题#5:分离整数的各个数位
从键盘输入一个任意的三位整数,要求正确地分离出它的百位、十位和个位数,并分别在屏幕上输出,输出采用每行输出一个数的方式,不带其它符号。
一个任意的三位整数

一个任意的三位整数

#include <stdio.h>
#include<math.h>
int main()
{
	int n=0;
	int a,b,c;
	a=b=c=0;
	scanf("%d",&n);
	a=n/100;
	b=(n%100)/10;
	c=(n%10);
	printf("%d%d%d",a,b,c);
	return 0;
}
	

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值