现在自己的研究方向感觉毕业后不太好找工作,所以决定还是走软件方面。
之前做的课后题没有保存,所以直接从第六章的第10题开始了。
希望自己毕业后能找到一份满意的工作吧。
这里推荐一下由xiaojimmychen 写的C Primer Plus的完整答案。
我的博客主要记录一下自己的学习代码过程吧,感兴趣的朋友可以在自己电脑上看能不能运行,这里用的编译器是VS2010。
不知道为什么在VS2010要加#include "stdafx.h"才能运行。
6.10 这个a 得要比b大,才能正确处理结果
#include "stdafx.h"
#include<stdio.h>
int main(void)
{
long int a,b,c;
long long int sum=0;
printf("请输入2个数字作为上下限:");
scanf("%d %d",&a,&b);
while(a-b!=0)
{
printf("这两个数字分别为%ld和%ld,",a,b);
for(;a>=b;a--)
sum+=a*a;
printf("它们之间范围的平方和为%lld\n",sum);
sum=0;
printf("请输入接下来2个数字:");
scanf("%d %d",&a,&b);}
printf("Done!\n");
getchar();
getchar();
return 0;
}
}
6.11
int main(void)
{
int kobe[8],i,a;
int Bryant=0;
printf("请输入8个整数:\n");
for(i=0;i<8;i++)
{
scanf("%d",&kobe[Bryant]);
Bryant++;
}
printf("这8个整数倒序打印输出为:\n");
for(a=7;a>=0;a--)
printf("%4d",kobe[a]);
getchar();
getchar();
return 0;
}
6.12
#include "stdafx.h"
#include<stdio.h>
double power(int x);
int main(void)
{
double a,order1,order2,n,sum;
long long int time;
order1=order2=0.0;
a=1.0;
printf("请输入要计算的项数:\n");
scanf("%lld",&time);
while(time>0)
{
for(n=1.0;(int)n<=time;n++)
{
order1+=a/n;
order2+=power((int)n)*(a/n);
}
sum=order1+order2;
printf("第一个序列之和为:%lf\n",order1);
printf("第二个序列之和为:%lf\n",order2);
printf("这两个无限序列的总和为:%lf\n",sum);
sum=order1=order2=0.0;
printf("请输入下一个要计算的项数:\n");
scanf("%lld",&time);
}
printf("结束~");
getchar();
getchar();
return 0;
}
double power(int x) //求第二个项的项数是否为-
{
int result,i;
result=1;
for(i=0;i<=x;i++)
result *=(-1);
return result;
}
6.13
#include "stdafx.h"
#include<stdio.h>
int power(int x);
int main(void)
{
int kobe[8],i,a;
for(i=0;i<8;i++)
kobe[i]=power(i);
printf("数组中的元素依次为:\n");
a=0;
do
{
printf("%d ",kobe[a]);
a++;
}while(a<8);
printf("\n结束~");
getchar();
return 0;
}
int power(int x)
{
int result,y;
result=1;
for(y=0;y<=x;y++)
result *=(2);
return result;
}
6.14
#include "stdafx.h"
#include<stdio.h>
int main(void)
{
double array1[8],array2 [8];
int i,x,y,z;
printf("请输入8个元素作为第一个数组中的数:\n");
for(i=0;i<8;i++)
scanf("%lf",&array1[i]);
printf("第二组的元素设置为第一个数组对应元素的累积之和\n");
array2 [0]=array1 [0];
for(x=1;x<8;x++)
array2 [x]=array1[x]+array2[x-1];
printf("两个数组中的元素分别为:\n");
for(y=0;y<8;y++)
printf("%10.2lf",array1[y]);
printf("\n");
for(z=0;z<8;z++)
printf("%10.2lf",array2[z]);
printf("\n结束~");
getchar();
getchar();
return 0;
}
6.15
#include "stdafx.h"
#include<stdio.h>
#include<string.h>
#define number 400
int main(void)
{
char kobe[number];
long long int i,x,y;
i=-1;
printf("请输入想要输入的内容:\n");
do
{
i++;
scanf_s("%c", &kobe[i]);
} while (kobe[i] != '\n');
printf("输入的内容倒序打印出来为:");
for(;i>0;i--)
printf("%c",kobe[i-1]);
printf("\n结束~");
getchar();
getchar();
return 0;
}
6.16
#include<stdio.h>
#include "stdafx.h"
int main(void)
{
double dollar1,dollar2;
dollar1=dollar2=100;
long int year=0;
do
{
year++;
dollar1 +=10;
dollar2 +=0.05*dollar2;
}while(dollar1>=dollar2);
printf("终于,在经过了%ld年之后,Deirde的投资额超过了Daphne.\n",year);
printf("这时,Deirde的投资额为%.3lf,Daphne的投资额为%.3lf\n",dollar1,dollar2);
getchar();
return 0;
}
6.17
#include "stdafx.h"
#include<stdio.h>
int main(void)
{
double dollar=100.0;
int year=0;
while(dollar>0)
{
dollar+=0.08*dollar;
dollar-=10;
year++;
}
printf("在经过%d年后,查克取完了钱",year);
getchar();
return 0;
}
6.18
#include "stdafx.h"
#include<stdio.h>
int main(void)
{
int friends=5,weeks=0,x=1;
while(friends<=150)
{
friends=(friends-x)*2;
x++;
weeks++;
printf("第%d周,Rabund博士的朋友数量为%d\n",weeks,friends);
}
printf("第%d周,博士的朋友数量超过了邓巴数.",weeks);
getchar();
return 0;
}