Ex

Input some integers and output their min, max and average values (keep three decimal places). It is guaranteed that each input number is a integer less than 1000.

Input contains many datasets, the first line of each dataset is the number of integers n, and the second line contains the n numbers. And the end mark of input is n=0, the program should overlook this dataset. There should be empty row between contiguous datasets.

Sample input:

8

2 8 3 5 1 7 3 6

4

-4 6 10 0

Sample ouput:

Case 1: 1 8 4.375

Case 2: -4 10 3.00

#include<stdio.h>
#define inf 1000000
int main()
{
int x, n, min, max=, s=, kase=;
while(scanf("%d", &n) == && n, min=inf, max=-inf){
int s=;
for(int i=;i<n;i++){
scanf("%d",&x);
s += x;
if( x< min) min = x;
if( x> max) max = x;
}
if(kase) printf("\n");
printf("Case %d: %d %d %.3f\n", ++kase, min, max, (double)s/n);
}
return ;
}

 

2-1 daffodil

Print all the daffodil numbers from 100-999. If the triple digits ABC meets the condition ABC=A*A*A+B*B*B+C*C*C, then it is a daffodil number. For example, 153=1*1*1+5*5*5+3*3*3, so 153is a daffodil number.

#include<stdio.h>
#include<math.h>
int main()
{
int n;
for(n=; n<=; n++)
if (n == pow(n/,)+pow(n/%,)+pow(n%,))
printf("%d\n", n);
else
continue;
return ;
}

2-2 hanxin

Hanxin let soldiers stand three people per line, five people per line and seven people per line, and he only needs to check  the end line to know the total number of people.

 

Input many datasets, and each dataset contains three non-negetive integer a,b,c, which represents the end line number of people (a<3, b<5, c<7), output the minimium  number of people (or report No answer). Given the total population is not less than 10 and no more than 100. Input ends at the end of file.

For example,

input:

2 1 6

2 1 3

output:

Case 1: 41

Case 2: No answer

#include<stdio.h>
int main()
{
int a,b,c, kase=;
scanf("%d%d%d", &a, &b, &c);
bool flag=false;
int n = ;
while( flag == false && n<=){
if((n% == a) && (n% == b) && (n% == c))
{
flag = true;
}
else
n++;
}
if (flag == true)
printf("%d\n", n);
else
printf("No answer\n");
return ;
}

2-3 triangle

Input the positive integer n<=20, output a inverted triangle. 

For example, n=5:

*********

 ******* 

   ****

     *

 

#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
for(int i=; i<= n; i++){
for(int j=; j<i;j++){
printf(" ");
}
for(int k=; k<*(n-i)-;k++){
printf("*");
}
printf(" \n");
} return ;
}

2-4 susequence

Input two integers n<m<10^6, output 1/n^2+1/(1+n)^2+...+1/m^2, keep 5 decimal places. Input consists of many datasets, the end mark is n=m=0. 

Hint: Mind the trap.

Sample input:

2 4

65536 655360

0 0

Sample output:

Case 1: 0.42361

Case 2: 0.00001

#include<stdio.h>
int main()
{
int n, m =;
double s=;
scanf("%d%d", &n, &m);
for(int i = ; i <= m-n; i++){
s +=1.0/(n+i)/(n+i);
}
printf("%.5f", s);
return ;
}

Trap: When the input number, n or m is very large, their product will be very large and overflow. Thus it n or m should be divided twice. 

2-5 decimal

Input integer a, b,c and output the decimal format of a/b, and rounded to c decimal places. a,b <=10^6, c<=100.

Input

1 6 4

Output

0.1667

#include<stdio.h>
int main()
{
int a=,b=,c=;
int d=a%b; int s;
printf("0.");
for(int i=;i<c;i++)
{
d=d*;
s=d/b;
d=d%b;
printf("%d",s);
}
}

2-6 permutation

Form three three-digit numbers abc, def and ghi from 1,2,3,~, 9. Each figure should only be used once. abc: def: ghi=1:2:3. Output all solutions in order "abc def ghi". One solution each line. Don't think too hard on it.

#include<stdio.h>
int main()
{
int m;
for(m=;m<=;m++)
{
if((m/) != (m/%)&& (m/)!= (m%)&& (m%)!= (m/%)
&& ((m/)*(m/%)* (m%)* (*m/%) *(*m%)*(*m/)
* (*m/) * (*m/%) * (*m%) == ********)
) printf("%d %d %d\n",m,*m,*m);
}
return ;
}

Prob 1

Suppose we need to output 2,4,6,8,...,2n, one figure each line. Alter the following program to achieve this goal.

 

#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
for(int i=;i<=n;i++)
printf("%d\n",i);
return ;
}

Task 1

Alter line 7 not line 6. 

#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
for(int i=;i<=n;i++)
printf("%d\n",*i);
return ;
}

Alter line 6 not line 7. 

#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
for(int i=;i<=*n;i=i+)
printf("%d\n",i);
return ;
}

Prob 1

What's the result of the following program?

#include<stdio.h>
int main()
{
double i;
for(i=; i!= ; i+=0.1)
printf("%.1f\n", i); return ;
}

A lot of numbers...because i is double and 10 is an integer, and double can not be rounded to integer....

Ch2. Loop Structure的更多相关文章

  1. Texture tiling and swizzling

    Texture tiling and swizzling 原帖地址:http://fgiesen.wordpress.com If you’re working with images in your ...

  2. libev代码

    就是贴上来: ev.c: /* * libev event processing core, watcher management */ /* this big block deduces confi ...

  3. Represent code in math equations

    Introduce The article shows a way to use math equations to represent code's logical. Key ideas logic ...

  4. Lab 6-4

    In this lab, we'll analyze the malware found in the file Lab06-04.exe. Questions and Short Answers W ...

  5. 课程五(Sequence Models),第一 周(Recurrent Neural Networks) —— 2.Programming assignments:Dinosaur Island - Character-Level Language Modeling

    Character level language model - Dinosaurus land Welcome to Dinosaurus Island! 65 million years ago, ...

  6. (C/C++学习笔记) 八. 程序控制语句

    八. 程序控制语句 ● 基础知识 算法的基本控制结构: 顺序结构(sequential structure), 选择结构(case structure), 循环结构(loop structure) c ...

  7. PHP学习 流程控制和数组

    flow control 流程控制decision structure 判断结构loop structure 循环结构 if(condition){statement1;} if(){}else{} ...

  8. libev loop_init分析

    尼玛 C语言学不好真是桑心呐! 看了libev的代码有一种想死的感觉,但是还是要硬着头皮看下去,一定看完! /* initialise a loop structure, must be zero-i ...

  9. [Algorithm] 1. A+B Problem

    Description Write a function that add two numbers A and B. Clarification Are a and b both 32-bit int ...

随机推荐

  1. C#Execl

    using System.IO; using System.Text; namespace iLIS.Common { /// <summary> /// 生成Excel文档内容 /// ...

  2. 架构设计之Spring-Session分布式集群会话管理

    前言 通常在web开发中,回话管理是很重要的一部分,用于存储与用户相关的一些数据.对于JAVA开发者来说,项目中的session一般由Tomcat或者jetty容器来管理. 特点介绍 尽管使用特定的容 ...

  3. 简谈-Python的注释、变量类型、标识符及关键字

    在Python程序中,要想支持中文输出,则要在代码前面添加 标识符:开发人员在程序中自定义的一些符号和名称 标示符是自己定义的,如变量名 .函数名等 标识符的规则:  标示符由字目.下划线和数字组成, ...

  4. Mongo汇总问题

    1. 数据 /* 5 */ { "_id" : ObjectId("5902f7ca2b3fe442d60a0946"), "code" : ...

  5. JQuery获取元素类名

    一般而言,JQuery可以利用attr来获取元素的属性值, 1.$("元素").attr("属性");                //获取指定属性的值 2. ...

  6. MySQL游标的简单实践

    Q:为什么要使用游标? A: 在存储过程(或函数)中,如果某条select语句返回的结果集中只有1行,可以使用select into语句(上几篇博客有介绍到用法)来得到该行进行处理:如果结果集中有多行 ...

  7. selenium 利用testNG对异常进行自动截图

    哈哈哈,很久没写博客了,懒了. 因为一些原因最近需要把监听事件重新整理一下,开始没细想,直接copy网上的,其实结果发现报错很多,或者是达不到效果,然后把之前的代码翻出来,仔细看了一下.下面给一些需要 ...

  8. Docker - 容器互联

    容器互联 通过docker run命令的--link参数可以让容器之间通过连接(linking)系统进行交互. 参数格式:--link name:alias ,name是要链接的容器名称, alias ...

  9. Linux中Nginx反向代理下的tomcat集群

    Nginx具有反向代理(注意和正向代码的区别)和负载均衡等特点. 这次Nginx安装在 192.168.1.108 这台linux 机器上.安装Nginx 先要装openssl库,gcc,PCRE,z ...

  10. Spring IOC的使用

    控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的.这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转,目的是为了获得更好的扩展性和良好的可维护性.所谓依 ...