while循环程序设计实验三

A - 数列求和3

描述

正整数序列是指从1开始的序列,例如{1,2,3,4,......}

给定一个整数 n,现在请你求出正整数序列 1 - n 的和。

输入

输入一个整数 n 。(1 <= n <= 1000)

输出

输出一个整数,即为正确答案。

样本

输入

2

输出

3

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

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

B - 数位数

描述

给定一个正整数 n ,请你求出它的位数。

输入

单组输入,输入一个整数 n 。(1<= n <= 2147483647)

输出

输出一行,包含一个整数,即为 n 的位数。

样本

输入

1234567

输出

7

#include<stdio.h>
int main()
{
int n,count=0;
scanf("%d",&n);
while(n!=0)
{
n=n/10;
count++;
}
printf("%d\n",count);
return 0;
}

C - N^3问题

描述

输入一个正整数N,求出N^3的各位数字的立方和。

输入

输入N的值。N<=1024

输出

问题描述中所要求的数值。

样本

输入

3

输出

351

#include<stdio.h>
int main()
{
int N,n,m,sum=0;
scanf("%d",&N);
n=N*N*N;
while(n!=0)
{
m=n%10;
sum=sum+m*m*m;
n=n/10;
}
printf("%d\n",sum);
return 0;
}

D - 小树快长高

描述

小明在植树节种了一棵小树,小明非常关心小树,每天都给小树浇水,盼望着小树快快长高。他知道小树现在有 n cm,每天长高k cm,他想知道多少天小树可以长到m cm。

输入

输入三个整数 n, m, k。( 0 <= n<= 10000, 0 <= m <= 10000,0 <= k <= 10000)

输出

输出一个整数,即需要的天数。

样本

输入

100 200 5

输出

20

#include<stdio.h>
int main()
{
int n,m,k,day=0;
scanf("%d%d%d",&n,&m,&k);
while(n<m)
{
n=n+k;
day++;
}
printf("%d\n",day);
return 0;
}

E - 偶数数位求和

描述

给定一个整数,请求出这个整数所有数位中是偶数的数位的和。例如,对于12436546,那么答案就是 2 + 4 + 6 + 4 + 6 。

输入

输入一个数 n 。(0 <= n <= 2147483647)

输出

输出 n 的所有偶数数位的和。

样本

输入

6768

输出

20

#include<stdio.h>

int main()

{

int n,sum=0,m;

scanf("%d",&n);

while(n!=0)

{

m=n%10;

if(m%2==0)

{

sum=sum+m;

}

n=n/10;

}

printf("%d\n",sum);

return 0;

}

F - 小粉的难题

描述

小粉和哈士奇是好朋友,一天,哈士奇去找小粉玩,但小粉还没做完功课。粉妈妈说只有做完功课才能出门,这可急坏了小粉,于是小粉让哈士奇和他一块做功课。其中有一道题是这样的:

给出一个正整数 n 和数字 m ( m 取值范围[0,9]中的一个数字),求 m 在 n 中出现的次数。

比如 n = 2122345 , m = 2,答案就是 3 ,因为 2 在 2122345 中出现了三次。

哈士奇的数学不好,为了尽快做完功课,他找到了会编程的你,请你编写程序解决这个问题。

输入

输入只有一行,包含两个空格分开的整数 n 和 m 。(0 <= m <= 9,1 <= n <= 2147483647)

输出

输出一个数字,表示 m 在 n 中 出现的次数。

样本

输入

2122345 2

输出

3

#include<stdio.h>
int main()
{
int n,m,count=0;
scanf("%d%d",&n,&m);
while(n>0)
{
if((n%10)==m)
{
count++;
}
n=n/10;
}
printf("%d\n",count);
return 0;
}

G - A+B 用于输入-输出实践 (I)

描述

你的任务是计算a + b.

太容易了?!答案是肯定的!我专门为acm初学者设计了这个问题。

你一定已经发现有些问题与这个问题具有相同的标题,是的,所有这些问题都是为同一目的而设计的。

输入

输入将由一系列整数对a和b组成,由空格分隔,每行一对整数。

输出

对于每对输入整数 a 和 b,您应该在一行中输出 a 和 b 的总和,并为输入中的每行输出一行输出。

样本

输入

1 5

10 20

输出

6

30

提示

这是一个求两数之和的题目,输入多对用空格分开的两个数a b,输出a+b的和,每一对数据的和占一行。编写代码时需要注意的是,由于没有指出有多少对输入数据,因此我们可以编写如下代码:

//C语言

#include < stdio.h >

int main() //把main函数定义成int类型

{

int a,b;

while(scanf(“%d %d”,&a, &b) != EOF) // 输入结束时,scanf函数返回值为EOF,即没有数据输入时则退出while循环

printf(“%d\n”,a+b);

return 0; //返回值为0

}

//或者C++语言

#include < iostream > //注意头文件的使用方法

using namespace std;

int main()

{

int a,b;

while(cin >> a >> b)

cout << a+b << endl;

return 0;

}

#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",a+b);
}
return 0;
}

#include<stdio.h>
int main()
{
int a,b;
while(~scanf("%d%d",&a,&b))
{
printf("%d\n",a+b);
}
return 0;
}

H - A+B 用于输入-输出实践 (III)

描述

您的任务是计算 a + b。

输入

输入包含多个测试用例。每个测试用例包含一对整数 a 和 b,每行一对整数。包含 0 0 的测试用例终止输入,并且不处理此测试用例。

输出

对于每对输入整数 a 和 b,您应该在一行中输出 a 和 b 的总和,并为输入中的每行输出一行输出。

样本

输入

1 5

10 20

0 0

输出

6

30

#include<stdio.h>
int main()
{
int a,b;
while((scanf("%d%d",&a,&b)!=EOF)&&(a||b))
{
printf("%d\n",a+b);
}
return 0;
}

#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
if(!(a||b))//也可改为(a==0)&&(b==0)。
{
break;
}
else
{
printf("%d\n",a+b);
}
}
return 0;
}

I - A+B 用于输入-输出实践 (VII)

描述

您的任务是计算 a + b。

输入

输入将由一系列整数对a和b组成,由空格分隔,每行一对整数。

输出

对于每对输入整数 a 和 b,应输出 a 和 b 的总和,后跟一个空行。

样本

输入

1 5

10 20

输出

6

 

30

#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n\n",a+b);
}
return 0;
}

J - 小金问呀问不会问题

描述

众所周知,C语言的学习是我们程序设计基础的重点和主要内容。

小金在班里是一个爱学习的好孩子,但是他的编程能力却有点差,不过他坚信自己一定可以进步并追上其他同学。

输入

多组输入。

从键盘读入一个整数n,如果n >= 0代表小金考试进步了,如果n < 0代表小金退步了。

输出

如果小明进步了输出“Yes”,反之输出“No”。输出不包括引号,输入输出各占一行,保证数据合法。

样本

输入

100

-100

输出

Yes

No

#include<stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n>=0)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
return 0;
}

K - 优越数

描述

给定3个数,如果有两个数大于他们的平均数则称这组数为优越数。(定义纯属虚构)

输入

输入第一行是一个整数: 表示测试数据的组数。

对于每组测试数据,仅一行3个整数。

输出

对于每组输入数据输出一行,判断它是否为一组优越数,如果是输出“Yes”(输出不包括引号),否则输出“No”。

样本

输入

2

1 2 3

1 4 4

输出

No

Yes

#include<stdio.h>
int main()
{
int n,a,b,c;
float average;
scanf("%d",&n);
while(n>0)
{
scanf("%d%d%d",&a,&b,&c);
average=(a+b+c)/3.0;
if(((a>average)&&(b>average))||((a>average)&&(c>average))||((b>average)&&(c>average)))
{
printf("Yes\n");
}
else
{
printf("No\n");
}
n--;
}
return 0;
}

L - 分段函数求值

描述

有如下分段函数

F(x) = x^2 + 1 当x> 0时;

F(x) = -x 当x<0时;

F(x) = 100.0 当x=0时;

编程根据输入的不同x(x为实数),输出其对应的函数值

输入

多组输入,每组一个实数x。处理到文件结束。

输出

对于每组输入x,输出其对应的F(x),每组一行,结果保留1位小数。

样本

输入

8.00

-5.0

输出

65.0

5.0

#include<stdio.h>
int main()
{
double x,y;
while(scanf("%lf",&x)!=EOF)
{
if(x>0)
{
y=x*x+1;
}
else if(x==0)
{
y=100.0;
}
else
{
y=-x;
}
printf("%.1lf\n",y);
}
return 0;
}

M - 压岁钱

描述

   SuShan过年要给孩子们发压岁钱喽,由于家里孩子很多,这可急坏了SuShan。你肯定以为她在担心钱不够,那你错了,她可是个有钱人儿,不差钱儿。她担心的是每个人分多少从而保证公平。

   SuShan从瑞士银行提出1000000来给孩子们分,由于来的孩子的数目不确定,所以SuShan希望你能帮他计算一下每个孩子给多少钱,从而保证每个孩子得到的都是整数。

输入

输入有多组数据,第一行 T 代表数据的组数。

接下来有 T 行,每行一个整数 N,代表孩子的数目,1<= N <= 10000000。

输出

只有一行。如果能够分给每个孩子相同数目的压岁钱,且都是整数,则输出每个孩子得到的钱数。否则输出No。

样本

输入

3

1

2

3

输出

1000000

500000

No

#include<stdio.h>
#define qian 1000000
int main()
{
int T,N;
scanf("%d",&T);
while(T>0)
{
scanf("%d",&N);
if(qian%N==0)
{
printf("%d\n",qian/N);
}
else
{
printf("No\n");
}
T--;
}
return 0;
}

N - 计算球体积

描述

根据输入的半径值,计算球的体积。

输入

输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。

输出

输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。

样本

输入

1

1.5

输出

4.189

14.137

提示

已知 PI = 3.1415927

#define PI 3.1415927

#include<stdio.h>
#define PI 3.1415927
int main()
{
double r,V;
while(scanf("%lf",&r)!=EOF)
{
V=4*PI*r*r*r/3.0;
printf("%.3lf\n",V);
}
return 0;
}

O - 洗衣服

描述

X是一个勤劳的小孩,总是会帮助大人做家务。现在他想知道对于一根长为L的绳子能晾开多少件宽为W的衣服,显然这些衣服不能相互叠压。

输入

多组输入。

每组输入两个整数L,W。

输出

输出答案。

样本

输入

10 5

10 4

输出

2

2

#include<stdio.h>
int main()
{
int L,W;
while(scanf("%d%d",&L,&W)!=EOF)
{
printf("%d\n",L/W);
}
return 0;
}

 

 

 

 

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值