《C语言实验报告(三)》.docx
《《C语言实验报告(三)》.docx》由会员分享,可在线阅读,更多相关《《C语言实验报告(三)》.docx(13页珍藏版)》请在冰豆网上搜索。
![《C语言实验报告(三)》.docx](https://file1.bdocx.com/fileroot1/2022-10/7/167300e1-1b17-46c0-9b30-eec8f45190cb/167300e1-1b17-46c0-9b30-eec8f45190cb1.gif)
一、实验目的
C语言实验报告(三)
1、 掌握C语言中,循环结构
2、 掌握C语言中,for语句和while语句的使用
3、 掌握break语句与continue语句
4、 掌握直到型循环do-while语句
二、实验内容
1.不能被3整除的自然数
输入一整数初始值n(0个不能被3整除的自然数。
样例输入:
10
样例输出:
10111314161719202223
要求输出的每个数据占4列。
·程序代码:
#include"stdio.h"intmain()
{
int n,i,t=1;
scanf("%d",&n);for(i=n;t<=10;i++)
if(i%3!
=0)
{
printf("%4d",i);
t++;
}
printf("\n");
return0;
}
2.表达式求和
求1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值,n为键盘输入的一个整数,(0样例输入:
3样例输出:
10
·程序代码:
#include"stdio.h"intmain()
{
intn,i,sum,j;
scanf("%d",&n);sum=0;for(i=1;i<=n;i++)
for(j=1;j<=i;j++)sum+=j;
printf("%d\n",sum);return0;
}
3.数的平方表
描述:
输入两个空格隔开的整数n和m(0到m的平方。
输入:
用空格隔开的两个整数n和m(0输出:
从n到m的平方样例输入:
15
样例输出:
1的平方是1
2的平方是4
3的平方是9
4的平方是16
5的平方是25
·程序代码:
#include"stdio.h"intmain()
{
intm,n,i,t;
scanf("%d%d",&n,&m);for(i=n;i<=m;i++)
{
t=i*i;
printf("%d的平方是%d\n",i,t);
}
return0;
}
4.求平方和
描述:
编写一个程序,根据输入的n,计算:
输入:
整数n(n>=0)
输出:
从1到n的平方和样例输入:
100
样例输出:
338350
·程序代码:
#include"stdio.h"intmain()
{
intn,i,sum=0;
scanf("%d",&n);for(i=1;i<=n;i++)
{
sum+=i*i;
}
printf("%d",sum);
return0;
}
5.求和值
描述:
求和值Sn=a+aa+aaa+……+aaaa…aa(n位)
如n=5,a=3,则是求S5=3+33+333+3333+33333。
输入:
用空格隔开的n和a
输出:
s=和值样例输入:
31
样例输出:
s=123
·程序代码:
#include"stdio.h"intmain()
{
intn,i,sum,a,j;
scanf("%d%d",&n,&a);sum=0;j=0;
for(i=1;i<=n;i++)
{
j=j*10+a;
sum+=j;//sum=sum+j;
}
printf("s=%d\n",sum);
return0;
}
6.被7整除的数
描述:
输出指定范围被7整除的数。
输入:
两个用空格隔开的整数n,m(0输出:
输出单独占一行,在n到m之间(包含n和m),被7整除的数,用一个空格隔开。
样例输入:
1060
样例输出:
14212835424956
·程序代码:
#include"stdio.h"intmain()
{
intn,m,i;scanf("%d%d",&n,&m);for(i=n;i<=m;i++)
if(i%7==0)
{
printf("%d",i);
}
printf("\n");
return0;
}
7.指定范围的水仙花数
描述:
编写一个程序,打印出指定范围的所有“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数。
输入:
输入两个用空格隔开的整数(100输出:
在n和m之间(含n和m),所有的水仙花数。
每行一个。
样例输入:
100999
样例输出:
153370371407
·程序代码:
#include"stdio.h"intmain()
{
intn,m,a,b,c,i;
scanf("%d%d",&n,&m);for(i=n;i<=m;i++)
{
a=i/100;
b=i/10%10;c=i%10;
if(i==a*a*a+b*b*b+c*c*c)printf("%d\n",i);
}
return0;
}
8.奇数的乘积
描述:
给你n个整数,求它们中所有奇数的乘积。
输入:
输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
输出:
输出每组数中的所有奇数的乘积,对于每个测试实例,输出一行。
样例输入:
3123 ; 42345
样例输出:
3 15
·程序代码:
#include"stdio.h"intmain(void)
{
intn,i,m,s;
while(scanf("%d",&n)==1)
{
s=1;
for(i=1;i<=n;i++)
{
scanf("%d",&m);
if(m%2!
=0)s*=m;
}
printf("%d\n",s);
}
return0;
}
9.阶乘和
描述:
编写一个程序,其功能为:
计算并输出:
sum=1!
+2!
+...+n!
输入:
一个在0到10之间(含0和10)的整数n。
输出:
sum=1!
+2!
+...+n!
样例输入:
2
样例输出:
sum=3
·程序代码:
#include"stdio.h"intmain()
{
intn,i,sum,a,j;
scanf("%d",&n);sum=0;j=1;for(i=1;i<=n;i++)
{
j=j*i;
sum+=j;//sum=sum+j;
}
printf("sum=%d\n",sum);
return0;
}
10.牛顿迭代求平方根
描述:
xn的初值可以取a/2。
输入:
一个正实型数据a
输出:
a的平方根,保留5位小数。
样例输入:
2 样例输出:
1.41421
·程序代码:
#include"stdio.h"#include"math.h"intmain()
{
floata,x1,x2;
scanf("%f",&a);x1=a/2;x2=(x1+a/x1)/2;
while(fabs(x1-x2)>=1e-5)
{
x1=x2;x2=(x1+a/x1)/2;
}
printf("%.5f\n",x2);
return0;
}
11.整数之间的素数
描述:
求指定的两个整数m、n之间的素数(m<=n)
输入:
只有一行,是空格隔开的两个正整数m和n。
(m<=n)
输出:
在m和n之间(含m和n)的所有素数,按照每个数据占6列,每行5个数据输出(最后一行数目可以少)。
样例输入:
100200
样例输出:
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
·程序代码:
#include"stdio.h"#include"math.h"int main()
{
intm,n,a,flag=0,i=2,b=0;
scanf("%d%d",&m,&n);for(a=m;a<=n;a++)
{
i=2;
flag=0;while(i<=sqrt(a)&&flag==0)
{
if(a%i==0)
flag=1;
elsei++;
}
if(flag==0)
{
printf("%6d",a);
b++;if(b%5==0)
printf("\n");
}
}
return0;
}
12.打印菱形
描述:
从键盘输入一个整数n(1≤n≤9),打印出指定的菱形。
输入:
正整数n(1≤n≤9)。
输出:
指定的菱形。
第一行前面有n-1个空格,第二行有n-2个空格,以此类推,直到第n行;从第n+1行后空格开设逐渐增多,每次增加一个。
样例输入:
5
样例输出:
*
***
*****
*******
*********
*******
*****
***
*
·程序代码:
#includeintmain()
{
intm,n,i,t;scanf("%d",&n);for(i=1;i<=n;i++)
{
for(m=n-i;m>=1;m--)//here
{
printf("");
}
for(t=2*i-1;t>=1;t--)
{
printf("*");
}
printf("\n");
}
for(i=n-1;i>=1;i--)
{
for(m=n-i-1;m>=0;m--)//here
{
printf("");
}
for(t=2*i-1;t>=1;t--)
{
printf("*");
}
printf("\n");
}
return0;
}
13.sumofintegers
描述:
Inthisproblem,yourtaskistocalculateSUM(n )=1+2+3+...+n
输入:
The input first line is a integer m denotes
numberofinputand below willconsistofmintegersn,oneintegerperline
输出:
Foreachcase,outputSUM( n )inoneline,
followed by a blank line. You may assume the
result will be in the range of 32-bit signedinteger.
样例输入:
2
1
100
样例输出:
1
5050
·程序代码:
#include"stdio.h"intmain()
{
intn,i,m,sum,j;
scanf("%d",&n);for(i=1;i<=n;i++)
{
scanf("%d",&m);
sum=0;for(j=1;j<=m;j++)
sum+=j;printf("%d\n\n",sum);
}
return0;
}
14.爬井的小明
描述:
由于有不道德的人偷走了一个窨井盖子,而小明不慎掉了下去,他