十
// 编写一个程序,要求用户输入一个上限整数和一个下限的整数面积算从上限
// 到下限范围内所有整数的平方和,并显示计算结果。然后程序继续提示用户
// 输入上限和下限整数,并显示结果直到用户输入的上限整数等于或小于下限
// 整数为止。程序的运行实例如下:
// Enter lower and upper integer limits:5 9
// The sums of the squares from 25 to 81 is 255
// Enter lower and upper integer limits:3 25
// The sums of the squares from 9 to 625 is 5520
// Enter lower and upper integer limits:5 5
// Done
#include"stdio.h"
int JS(int n,int p);
int main(void)
{
int lower,upper,a,b,c;
printf("Enter lower and upper integer limits:");
scanf("%d %d",&lower,&upper);
while(lower<upper)
{
a=JS(lower,upper);
b=lower*lower;
c=upper*upper;
printf("The sums of the squares from %d to %d is %d\n",b,c,a);
printf("Enter lower and upper integer limits:");
scanf("%d %d",&lower,&upper);
}
printf("Done\n");
return 0;
}
int JS(int n,int p)
{
int sum=0;
for( ;n<=p;n++)
sum+=n*n;
return sum;
}
十一
// 编写一个程序,在数组中读入8个整数,然后按倒序打印这8个整数。
#include"stdio.h"
int main(void)
{
int a[8],b;
printf("please enter eight numbers:");
for(b=0;b<8;b++)
scanf("%d",&a[b]);
for(b=7;b>=0;b--)
printf("%2d",a[b]);
return 0;
}
十二
// 考虑下面两个无限序列:
// 1.0+1.0/2.0+1.0/3.0+1.0/4.0+...
// 1.0-1.0/2.0+1.0/3.0-1.0/4.0+...
// 编写一个程序计算这两个无限序列的总和,直到到达某次数。提示:奇数个-1
// 相乘得-1,偶数个-1相乘得1.让用户交互的输入指定的次数,当用户输入0或
// 负值时结束输入。查看运行100项、1000项、10000项后得总和,是否发现每个序列
// 都收敛于某值?
#include"stdio.h"
int main(void)
{
int tct;
double nbm,sum,sun;
int limit;
printf("Enter the number of terms you want:");
scanf("%d",&limit);
for(sum=0,nbm=1,tct=1;tct<=limit;nbm++,tct++)
{
sum+=1.0/nbm;
printf("sum=%f,when terms =%d\n",sum,tct);
}
for(sun=0,nbm=1,tct=1;tct<=limit;nbm++,tct++)
{
if(tct%2==0)
sun+=-1.0/nbm;
else
sun+=1.0/nbm;
printf("sun=%f,when terms =%d\n",sun,tct);
}
printf("The first infinite series:%f\n The second infinite series:%f",sum,sun);
return 0;
}
十三
// 编写一个程序。创建一个包含8个元素得int类型数组。分别把数组元素
// 设置为2得前8次幂。使用for循环设置数组元素的值,使用do while
// 循环显示数组元素的值
#include"stdio.h"
int main(void)
{
int a[8],b,d=1;
for(b=0;b<8;b++)
{
d*=2;
a[b]=d;
}
b=0;
do{
printf("%5d",a[b]);
b++;
}while(b<8);
return 0;
}
十四
// 编写一个程序,创建两个包含8个元素的double类型数组,使用循环提示用户
// 为第一个数组输入8个值。第二个数组的值设置为第一个数组对应元素的累计之和
// 例如,第二个数组的第4个元素的值是第一个数组前4个元素之和,第二个数组的第5
// 个元素的值是第一个数组前5个元素之和(用嵌套循环可以完成,但是利用第二个数组
// 的第5个元素是第二个数组的第4个元素与第一个数组的第5个元素之和,只用一个循环
// 就能完成任务,不需要使用嵌套循环)。最后,使用循环显示两个数组的内容,第一个数组
// 显示成一行,第二个数组显示在第一个数组的下一行,而且每个元素都与第一个数组各元素
// 相对应
#include"stdio.h"
int main(void)
{
int n,a;
double ar[8],arz[8];
printf("Please enter eight numbers.");
for(a=0;a<8;a++)
{
scanf("%lf",&ar[a]);
for(n=1;n<=a;n++)
{
arz[0]=ar[0];
arz[n]=arz[n-1]+ar[n];
}
}
printf("------------------------------------------------\n");
for(n=0;n<8;n++)
printf("%7.3lf",ar[n]);
printf("\n");
for(n=0;n<8;n++)
printf("%7.3lf",arz[n]);
printf("\n------------------------------------------------");
return 0;
}
十五
// 编写一个程序,读取一行输入,然后把输入的内容倒叙打印出来。可以把输入
// 储存在char类型的数组中,假设每行字符不超过255.回忆一下,根据%c转换
// 说明,scanf()函数一次只能从输入中读取一个字符,而且在用户按下Enter
// 健时scanf()函数会生成一个换行字符(\n)。
#include"stdio.h"
int main(void)
{
int i=0;
char a[255];
printf("Please enter evering you like"
"but no more than 255\n");
while(scanf("%c",&a[i])&& a[i]!='\n')
i++;
for(;i>=0;i--)
printf("%c",a[i]);
return 0;
}
十六
// Daphne以10%的单利息投资了100美元(也就是说,每年投资获利相当于原始
// 投资的10%)。Deirdre的以5%的复合利息投资100美元(也就是说,利息是当前
// 余额的5%,包含之前的利息)。编写一个程序,计算需要多少年Deirdre的投资
// 额才会超过Daphne,并显示那时两人的投资额。
#include"stdio.h"
int main(void)
{
float Da=100.0,De=100.0,a;
float b,suma=0.0,sume=0.0;
int n;
for(n=0;suma>=sume;n++)
{ a=Da*0.1;
suma=Da+a*(n+1);
b=De+De*0.05;
De=b;
sume=De;
}
printf("需要%d超过\n",n);
printf("Da =%f\nDe =%f",suma,sume);
return 0;
}
十七
// Chuckie Lucky赢得了100万美元(税后),他把奖金存入年利率8%的账户
// 在每年的最后一天,Chuckie取出10万美元。编写一个程序,计算多少年后
// Chuckie会取完账户的钱。
#include"stdio.h"
int main(void)
{
int year=0;
float sum=100.0;
while(sum>=0)
{
sum+=sum*0.08;
sum-=10;
year++;
printf("第%d年后%f\n",year,sum);
}
printf("%d年后",year);
return 0;
}
十八
// Rabund博士加入了一个社交圈。起初他又5个朋友。他注意到他的朋友圈数量以下面
// 方式增长。第一周少了1个朋友,剩下的朋友数量翻倍;第二周少了2个朋友,剩下的
// 朋友数量翻倍。一般而言,第N周少了N个朋友,剩下的朋友翻倍。编写一个程序,计算
// 并显示Rabund博士每周的朋友数量。该程序一直运行,知道超过邓巴数(Dunbar`snumber)
// 邓巴数是粗略估算一个人在社交圈中有稳定关系的成员的最大值,该值大约是150.
#include<stdio.h>
#define ORIGINAL 5
#define RATE 2
#define DUNBER 150
int main(void)
{
int weeks;
int friends = ORIGINAL;
weeks = 1;
do
{
friends -= weeks;
friends *= 2;
printf("week= %d friend= %d\n", weeks, friends);
weeks++;
} while(friends <= DUNBER);
return 0;
}
如有问题请留言,及时回答复。