C primer plus 6.16
6.16.1
#include<stdio.h>
int main(void)
{
char ch[26];
int i;
//
i=0;
while(i<26)
{
ch[i]='a'+i;
printf("%c",ch[i]);
i++;
}
//
return 0;
}
6.16.2
#include<stdio.h>
int main(void)
{
int i;//行计数器
int j;//列计数器
int p;//列比较器
//
for(i=0;i<5;i++)
{
p=i+1;
for(j=0;j<p;j++)
{
printf("$");
}
printf("\n");
}
return 0;
}
6.16.3
#include<stdio.h>
int main(void)
{
int i=0;/*行计数器*/
int j=0;/*列计数器*/
int q;/*列比较器*/
char n='F';
//
for(i=0;i<6;i++)
{
q=i+1;
n='F';
for(j=0;j<q;j++)
{
printf("%c",n);
n=n-1;
}
printf("\n");
}
//
return 0;
}
6.11.4
#include<stdio.h>
int main(void)
{
int i;//行计数器
int j;//列计数器
int p;//列比较器
char ch;
ch='A';
for(i=0;i<6;i++)
{
p=i+1;
for(j=0;j<p;j++)
{
printf("%c",ch);
ch++;
}
printf("\n");
}
//
return 0;
}
6.16.5
#include<stdio.h>
int main(void)
{
int i;//行计数器
int j;//行比较器
int p;//列空格计数器
int q;//列空格比较器
int m;//列升序计数器
int n;//列升序比较器
int k;//列降序计数器
int y;//列降序比较器
char ch;//用户输入值
char ar1;//计算机升序输出值
char ar2;//计算机降序输出值
//
printf("请输入一个大写字母:");
scanf("%c",&ch);
j=ch-'A'+1;
//
for(i=1;i<=j;i++)
{
q=ch-i;
for(p=1;p<=q;p++)
{
printf(" ");
}
n=i;
ar1='A';
for(m=1;m<=n;m++)
{
printf("%c",ar1);
ar1=ar1+1;
}
y=i;
ar2=ar1-2;
for(k=1;k<y;k++)
{
printf("%c",ar2);
ar2--;
}
printf("\n");
}
//
return 0;
}
6.16.6
#include<stdio.h>
int main(void)
{
const int up_num;
const int down_num;
int i;//计数器
int j;//比较器
int n;//计算机输出值
//
printf("请输入上限");
scanf("%d",&up_num);
printf("请输入下限");
scanf("%d",&down_num);
i=down_num;
j=up_num;
for(i=down_num;i<=j;i++)
{
printf("%d %d %d\n",i,i*i,i*i*i);
}
return 0;
}
6.16.7
#include<stdio.h>
#include<string.h>
int main(void)
{
char ch[20];
int i;//字符位置
printf("请输入一个单词");
scanf("%s",ch);
for(i=strlen(ch);i>=0;i--)
{
printf("%c",ch[i]);
}
return 0;
}
6.16.8
#include<stdio.h>
#include<math.h>
int main(void)
{
float m;
float n;
int i;//判定第一个浮点数是否为数字
int j;// 判定第二个浮点数是否为数字
float k;//计算机输出
printf("请输入第一个浮点数:");
i=scanf("%f",&m);
printf("请输入第二个浮点数:");
j=scanf("%f",&n);
while(i*j==1)
{
k=fabs((m-n)/(m*n));
printf("两数之差除以两数乘积为%f\n",k);
printf("请输入第一个浮点数:");
i=scanf("%f",&m);
printf("请输入第二个浮点数:");
j=scanf("%f",&n);
}
return 0;
}
6.16.9
#include<stdio.h>
#include<math.h>
void fx(double x,double y);
int main(void)
{
float m;
float n;
int i;// 判定第一个浮点数是否为数字
int j;// 判定第二个浮点数是否为数字
printf("请输入第一个浮点数:");
i=scanf("%f",&m);
printf("请输入第二个浮点数");
j=scanf("%f",&n);
while(i*j==1)
{
fx(m,n);
printf("请输入第一个浮点数");
i=scanf("%f",&m);
printf("请输入第一个浮点数");
j=scanf("%f",&n);
}
return 0;
}
void fx(double x,double y)
{
double fx;
fx=fabs((x-y)/(x*y));
printf("两数之差除以两数乘积为%f\n",fx);
}
6.16.10
#include<stdio.h>
int main(void)
{
int up_num;
int down_num;
int i;//计数器
int j;//比较器
int square=0;
int sum_square=0;
printf("请输入上限整数:");
scanf("%d",&up_num);
printf("请输入下限整数:");
scanf("%d",&down_num);
i=down_num;
j=up_num;
while(i<j)
{
for(i=down_num;i<=j;i++)
{
square=i*i;
sum_square=sum_square+square;
}
printf("%d到%d之间的平方和为:%d\n",down_num,up_num,sum_square);
printf("请输入上限整数:");
scanf("%d",&up_num);
printf("请输入下限整数:");
scanf("%d",&down_num);
i=down_num;
j=up_num;
}
return 0;
}
6.16.11
#include<stdio.h>
int main(void)
{
int nums[8];
int i;//数据位置 计数器
i=0;
printf("请输入八个整数:");
for(i=0;i<8;i++)
{
scanf("%d",&nums[i]);
}
for(i=7;i>=0;i--)
{
printf("%d",nums[i]);
}
return 0;
}
6.11.12
#include<stdio.h>
int main(void)
{
int i;//计算次数 比较器
int j;//计数器
float n;
float sum1;
float sum2;
float k;
int m;
printf("请输入计算次数:");
while(scanf("%d",&i)==1)
{
n=0;
sum1=0;
sum2=0;
for(j=1;j<=i;j++)
{
n=1.0/(n+1.0);
sum1=sum1+n;
k=-1.0;
m=j;
while(m%2==1)
{
k=1.0;
m++;
}
sum2=sum2+n*k;
}
printf("序列一:%f\n",sum1);
printf("序列二:%f\n",sum2);
printf("请输入计算次数:");
}
return 0;
}
6.16.13
#include<stdio.h>
int main(void)
{
int nums[8];
int i; //数据位置
int j;//次方计数
for(i=0;i<8;i++)
{
nums[i]=1;
for(j=0;j<=i;j++)
{
nums[i]=nums[i]*2;
}
printf("%d\n",nums[i]);
}
return 0;
}
没有按要求用do while
6.16.14
#include<stdio.h>
int main(void)
{
double nums[8];
double sum_nums[8];
int i;//数组位置,计数器
int k;
i=0;
k=0;
printf("请输入8个数字");
for(i=0;i<8;i++)
{
scanf("%lf",&nums[i]);
sum_nums[i]=k+nums[i];
k=sum_nums[i];
}
for(i=0;i<8;i++)
{
printf("%.2lf ",nums[i]);
}
printf("\n");
for(i=0;i<8;i++)
{
printf("%.2lf ",sum_nums[i]);
}
printf("\n");
return 0;
}
6.16.15
#include<stdio.h>
#include<string.h>
int main(void)
{
char ch[255];
int i;//字符长度
printf("请输入一行字:");
scanf("%s",ch);
i=strlen(ch);
while(i>=0)
{
printf("%c",ch[i]);
i--;
}
return 0;
}
6.16.16
#include<stdio.h>
int main(void)
{
double Daphne=100;
double Deirdre=100;
int i;//年份
i=0;
while(Deirdre<=Daphne)
{
Daphne=Daphne+100*0.1;
Deirdre=Deirdre*1.05;
i++;
}
printf("%d年后,\n",i);
printf("%Daphne的投资额为:lf\n",Daphne);
printf("Deirdre的投资额为:%lf\n",Deirdre);
}
6.16.17
#include<stdio.h>
int main(void)
{
double money=100;
int i=0;//计算年份
while(money>0)
{
money=money*1.08-10;
i++;
}
printf("%d年后,Chuckie会取完账户里的钱",i);
return 0;
}
6.16.18
#include<stdio.h>
int main(void)
{
int nums=5;
int i;//计算周数
for(i=1;nums<=150;i++)
{
nums=(nums-i)*2;
printf("%d周后¸Rabnud有%d个朋友\n",i,nums);
}
return 0;
}