4.使用嵌套循环,按下面的格式打印字母:
A
BC
DEF
GHIJ
KLMNO
PQRSTU
答案 方法1.
int main()
{
int row;
char ch;
for (row=0;row<6;row++)
{
for (ch='A'+row*(row+1)/2;ch<=('A'+row*(row+3)/2);ch++)
printf("%c",ch);
printf("\n");
}
return 0;
}
方法2.
#include<stdio.h>
int main()
{
int i, j;
char ch;
ch = 'A';
for(i = 1; i <= 6; i++)
{
for(j = 1; j <= i; j++)
{
printf("%c", ch);
ch++;
}
printf("\n");
}
return 0;
}
5.编写一个程序,提示用户输入大写字母。使用嵌套循环以下面金子塔型的格式打印字母;
A ABA ABCBA ABCDCBA ABCDEDCBA
打印这样的图形,要根据用户输入的字母来决定。例如,上面的图形是在用户输入E后打印结果。
#include <stdio.h>
int main()
{
char ch;
int i,j,row;
printf("请你输入一个大写字母:\n");
scanf("%c",&ch);
row=ch-'A';
for (i=0;i<=row;i++)
{
for (j=0;j<=row-i;j++)
printf(" ");
for(j=0;j<=i;j++)
printf("%c",'A'+j);
for (j=i-1;j>=0;j--)
printf("%c",j+'A');
printf("\n");
}
return 0;
}
12.考虑下面两个无限序列:
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+…
编写一个程序计算这两个无限序列的总和,直到到达某次数。查看运行100项、1000项、10000项后的总和,是否发现每个序列都收敛于某值?
#include <stdio.h>
int main()
{
float a=1.0,begin,sum1=0.0,sum2=0.0;
int count,i=1;
printf("请输入计算次数:\n");
scanf("%d",&count);
for (begin=1.0;begin<=count;begin++)
sum1 +=a/begin;
for (begin=1.0;begin<=count;i++,begin++)
{
if (i%2==0)
a=-a;
else
a=a;
sum2 +=a/begin;
}
printf("sum1=%f,sum2=%f\n",sum1,sum2);
return 0;
}
14.编写一个程序,创建两个包含8个元素的double类型数组,使用循环提示用户为第一个数组输入8个值。第二个数组元素的值设置为第一个数组对应元素的累计之和。最后,使用循环显示两个数组的内容,第一个数组显示成一行,第二行显示在第一个数组的下一行,而且每一个元素都与第一个数组各元素相对应。
#include <stdio.h>
#define SIZE 8
int main()
{
int index=0,i;
double sum1=0.0;
double number[SIZE],sum[SIZE];
printf("请输入8个数字:\n");
for (index;index<SIZE;index++)
scanf("%lf",&number[index]);
for (i=0;i<SIZE;i++)
printf("%-5.0f",number[i]);
printf("\n");
for (i=0;i<SIZE;i++)
{
sum1 +=number[i];
sum[i]=sum1;
printf("%-4.0f ",sum[i]);
}
return 0;
}
17.Chuckie Lucky 赢得了100万美元(税后),他把奖金存入年利率8%的账户。在每年的最后一天,chuckie取出10万美元。编写一个程序,计算多少年后Chuckie会取完账户的钱?
#include <stdio.h>
#define MONEY 100.00
#define RATE 0.08
int main()
{
double money=MONEY;
int year=0;
do
{
year++;
money=money*RATE+money;//一年后的钱
money -=10.0;
}
while (money>0.0);
printf("%d 年后能取完账户的钱.\n",year);
return 0;
}
18.Rabnud 博士加入了一个社交圈。起初他有5个朋友。他注意到他的朋友数量一下的方式增长数量翻倍。一般第一周少1个朋友,剩下的朋友数量翻倍;第2周少了2个朋友,剩下的朋友数量翻倍。一般而言,第N周少N个朋友,剩下的朋友数量翻倍。编写一个程序,计算并显示Rabnud博士每周的朋友数量。该程序一直运行,直到超过邓巴数。邓巴数是粗略估算一个人在社交圈中有稳定关系的成员的最大值,该值大约是150。
#include <stdio.h>
int main()
{
int friend_=5,week=0;
do
{
week++;
friend_ -=week;
friend_ *=2;
}
while (friend_<=150);
printf("%d 周后 Rabnud有%d个朋友,已经超过150个了.\n",week,friend_);
return 0;
}