第三章:
1、四门成绩:
#include
#include
int main() {
double grade[4],sum=0,avg;
int i=0;
printf("请输入你的四门成绩:n");
for(i=0;i<4;i++){
scanf("%lf",&grade[i]);
}
for(i=0;i<4;i++){
sum+=grade[i];
//printf("%f",sum);
}
avg=sum/4.0;
printf("你的总成绩为:%.2fn你的平均成绩为:%.2f",sum,avg);
return;
}
2、五位数倒叙
#include
#include
int main() {
int a=1;//用来判断输入是否为五位数的标志
int num;
printf("请输入一个五位数:");
scanf("%d",&num);
while(num>99999||num<10000) {
printf("错误,请重新输入一个5位数:n");
scanf("%d",&num);
}
int i;
for(i=0; i<5; i++) {
printf("%d",num%10);
//a=num%10;
num/=10;
}
return;
}
3、圆的系列输出:
#include
#include
#define pi 3.1415926
int main(){
double r,h;
printf("请输入圆半径:n");
scanf("%lf",&r);
printf("请输入圆柱体高:n");
scanf("%lf",&h);
printf("圆的周长:2*pi*%f=%.2f",r,2*pi*r);//这里输出两个公式作为示例
printf("n圆的面积:pi*%f*%f=%.2f",r,r,pi*r*r);
printf("n圆球表面积:%.2f",4*pi*r*r);
printf("n圆球的体积:%.2f",4*pi*r*r*r/3.0);
printf("n圆柱的表面积:%.2f",2*pi*r*h+2*pi*r*r);
printf("n圆柱的体积:%.2f",pi*r*r*h);
return 0 ;
}
第四章
1、三个数找最大数
源代码:
#include
#include
int main() {
int i;
int a[3]= {0};
printf("请输入你的三个数;n");
for(i=0; i<3; i++) {
scanf("%d",&a[i]);
}
int max;
if(a[0]>a[1]&&a[0]>a[2])
printf("你输入的最大值为:%d",a[0]);
else if(a[1]>a[0]&&a[1]>a[2])
printf("你输入的最大值为:%d",a[1]);
else
printf("你输入的最大值为:%d",a[2]);
}
2、分段线性函数求解:
#include
#include
int main(){
double x,y;
printf("请输入x坐标:n");
scanf("%lf",&x);
if(x<=(-10))
printf("进入函数y=x中 y=%.2f",x);
else if (x>-10&&x<=0)
printf("进入函数y=2.0*x+3中 y=%.2f",2.0*x+3);
else if (x>0&&x<=10)
printf("进入函数y=3.0*x-11中 y=%.2f",3.0*x-11);
else
printf("进入函数y=x/10.0+1中 y=%.2f",x/10.0+1);
}
3、一元二次方程求解:
#include
#include
#include
int main() {
int a,b,c,d;
double x1,x2;
printf("请依次输入a,b,c:n");
scanf("%d%d%d",&a,&b,&c);
printf("当前a=%d,b=%d,c=%dn",a,b,c);
d=b*b-4*a*c;
//printf("%d",d);
if(d<0) {
printf("该方程无解");
} else if(d>0) {
x1=(-b+sqrt(d))/2*a*1.0;//防止出现1/2=0的情况。
x2=(-b-sqrt(d))/2*a*1.0;
printf("有两个解:nx1=%.2f,x2=%.2f",x1,x2);
} else if(d==0) {
printf("有一个解:nx=%.2f",((-b)*1.0)/2*a*1.0);
}
}
一个根情况:
两个根情况:
无根情况:
第五章
1、输入若干成绩,负数结束。成绩排序求最值问题:
程序源代码:
#include
#include
int main() {
int temp,i,j,len;
double grade[1000]= {0};
double min=0,max=0,avg=0,sum=0;
printf("请输入你的各科成绩,并以负数结束:n");
for(i=0;;i++) {
scanf("%lf",&grade[i]);
if(grade[i]>=0)
sum+=grade[i];//输入时求总成绩方便求平均成绩
if(grade[i]<0) //负数结束
break; //跳出循环后当前i的数值就是数组长度
}
printf("您共输入了%d门成绩n",i);
len=i;//长度传送给len
for(i=0; i for(j=0; j if (grade[j]>grade[j+1]) { temp=grade[j+1]; grade[j+1]=grade[j]; grade[j]=temp; } } } printf("最高成绩为:%.2fn",grade[len-1]); printf("最低成绩为:%.2fn",grade[0]); printf("平均成绩:%.2fn",sum*1.0/len); } 2、整数转换为字符,再逆序输出 #include #include int main() { int i,temp,num,len=0; char str[100]; printf("请输入一个整数:n"); scanf("%d",&num); temp=num; while(temp!=0) {//求当前数字位数 temp/=10; len++; } for(i=0; i str[i]=num%10+0x30; //将数字加上0x30,就会转换为他的字符类型 num/=10; } for(i=0; i printf("%c",str[i]); } } 3、输出由*号组成的一个三角形 核心控制语句: #include #include int main() { //共9行5列 int h=9,l=5,choice; int i,j,tem=5; for(i=1; i<=9; i++) { if(i<=5)//控制前5行输出 choice=i; if(i>5) {//控制后4行输出 j=9; choice=j-tem; tem++; j--; //printf("n%dn",choice); if(choice==4) printf("n"); } switch(choice) { case 1: for (j=1; j<5; j++) printf(" ");//两个空格 printf("*n"); continue; case 2: for (j=1; j<4; j++) printf(" ");//两个空格 printf("* *n"); continue; case 3: for (j=1; j<3; j++) printf(" ");//两个空格 printf("* * *n"); continue; case 4: printf(" ");//两个空格 printf("* * * *n"); continue; case 5: printf("* * * * *"); continue; } } } 与书上的答案做对比: 第六章 1、10个整数排序问题: #include #include int main() { int temp,i,j; int num[10]= {0}; printf("请输入10个整数n"); for(i=0; i<10; i++) { scanf("%d",&num[i]); } for(i=0; i<9; i++) { //冒泡,控制次数循环 for(j=0; j<9; j++) {//前后交换循环 if (num[j] temp=num[j+1]; num[j+1]=num[j]; num[j]=temp; } } } printf("从大到小依次为:n"); for(i=0; i<10; i++) { printf("%d ",num[i]); } } 2、输入n,打印斐波那契数列: #include #include int main(){ int i,n; printf("请输入n的数值:n"); scanf("%d",&n) ; int Fib[1000]={0} ; Fib[0]=1; Fib[1]=2; for(i=2;i Fib[i]=Fib[i-1]+Fib[i-2]; //迭代产生新的数据存入数组 } for(i=0;i printf("%d ",Fib[i]) ; } } 2、杨辉三角的前10行 #include #include int main() { int n,i,j,a[100]; n=10;//可以改为手动输入 printf("1");//直接输出第一行 a[1]=a[2]=1;//初始化前两行 printf("n");//控制格式 for(i=3; i<=n; i++) {//因为迭代后数据会覆盖 a[1]=a[i]=1;//所以采用倒推法 for(j=i-1; j>1; j--) a[j]=a[j]+a[j-1]; for(j=1; j<=i; j++) printf("%d ",a[j]); printf("n"); } }



