1、投资问题:D1以10%的单利息投资了100美元(也就是说,每年投资赢的利息等于原始投资的10%),D2则以每年5%的复合利息投资了100美元(也就是说,利息是当前结余的5%,其中包括以前的利息),编写一个程序,计算需要多少年D2的投资额才会超过D1,并且显示出到那时两个人的投资额。
2、读入数据,直到终端输入为0为止,计算输入的偶数(even)个数及平均值,以及奇数(odd)的个数及奇数的平均值
3、写出Fibonacci数列的前40项(不用数组解决该问题)
4、嵌套循环的引入:九九乘法表的输出。
5、百钱买百鸡问题
6、实现终端的如下输出
7、 从终端实现如下的输出:
8、输出钻石型
9、从终端随机输入N个数,求和
10、 从终端实现循环输入,每次输入时随机输入数字,输出如下功能:
**11.求素数(prime)(求30000000到30000200之间的素数) **
12.从终端输入几个成绩,结束后,输出其中的最大值和最小值
C练习 Part1
- 练习
- 1、投资问题:D1以10%的单利息投资了100美元(也就是说,每年投资赢的利息等于原始投资的10%),D2则以每年5%的复合利息投资了100美元(也就是说,利息是当前结余的5%,其中包括以前的利息),编写一个程序,计算需要多少年D2的投资额才会超过D1,并且显示出到那时两个人的投资额。
- 2、读入数据,直到终端输入为0为止,计算输入的偶数(even)个数及平均值,以及奇数(odd)的个数及奇数的平均值
- 3、写出Fibonacci数列的前40项(不用数组解决该问题)
- 4、嵌套循环的引入:九九乘法表的输出。
- 5、百钱买百鸡问题
- 6、实现终端的如下输出
- 7、 从终端实现如下的输出:
- 8、输出钻石型
- 9、从终端随机输入N个数,求和
- 10、 从终端实现循环输入,每次输入时随机输入数字,输出如下功能:
- 11.求素数(prime)(求30000000到30000200之间的素数)
- 12.从终端输入几个成绩,结束后,输出其中的最大值和最小值
练习
1、投资问题:D1以10%的单利息投资了100美元(也就是说,每年投资赢的利息等于原始投资的10%),D2则以每年5%的复合利息投资了100美元(也就是说,利息是当前结余的5%,其中包括以前的利息),编写一个程序,计算需要多少年D2的投资额才会超过D1,并且显示出到那时两个人的投资额。
#include <stdio.h>
int main()
{
float D1 = 100;
float D2 = 100;
int year=0;
while(D1>=D2)
{
D1 = D1+10;
D2 = D2*0.05+D2;
year++;
}
printf("需要%d年D2的投资额才会超过D1\n",year);
printf("D1投资额:%.2f\n",D1);
printf("D2投资额:%.2f\n",D2);
}
2、读入数据,直到终端输入为0为止,计算输入的偶数(even)个数及平均值,以及奇数(odd)的个数及奇数的平均值
#include <stdio.h>
int main()
{
int n = 1; //定义提示输入变量
int e = 0; //定义偶数
int o = 0; //定义奇数
int ret; //定义需要输入的变量
float esum=0; //定义偶数求和
float osum=0; //定义技术求和
float eaver=0; //定义偶数平均值
float oaver=0; //定义奇数平均值
do
{
printf("请输第%d个数(输入0退出输入):\n",n);
n++;
if(scanf("%d",&ret) != 1)
return 1;
if(ret%2 == 0)
{
e++; //计数
esum=esum+ret; //求和
eaver=esum/e; //求平均值
}
else
{
o++; //计数
osum=osum+ret; //求和
oaver=osum/o; //求平均值
}
}while(ret != 0);
printf("偶数的个数为:%d平均值为:%.2f\n",e,eaver);
printf("奇数的个数为:%d平均值为:%.2f\n",o,oaver);
return 0;
}
3、写出Fibonacci数列的前40项(不用数组解决该问题)
#include <stdio.h>
int main()
{
int sn1=1,sn2=1,sum=0;
int t=0;
printf("第1项——%d\n",sn1);
printf("第2项——%d\n",sn2);
for(t=3;t<=40;t++)
{
sum = sn1 + sn2;
printf("第%d项——%d\n",t,sum);
sn1 = sn2;
sn2 = sum;
}
}
4、嵌套循环的引入:九九乘法表的输出。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d\t",j,i,j*i);
}
printf("\n");
}
exit(0);
}
5、百钱买百鸡问题
#include <stdio.h>
int main()
{
int x;
int y;
int z;
int cont;
int sum;
for(x=0;x<100;x++)
{
for(y=0;y<100;y++)
{
for(z=0;z<100;z++)
{
cont = 5*x + 3*y + z/3;
sum = x+y+z;
if(cont == 100 && z%3==0 && sum == 100)
{
printf("公鸡:%d 母鸡:%d 小鸡:%d\n",x,y,z);
}
}
}
}
}
6、实现终端的如下输出
ABCDEF
BCDEF
CDEF
DEF
EF
F
#include <stdio.h>
int main()
{
int i,j;
for(j=65;j<=70;j++)
{
for(i=j;i<=70;i++)
{
printf("%c",i);
}
printf("\n");
}
}
7、 从终端实现如下的输出:
F
FE
FED
FEDC
FEDCB
FEDCBA
#include <stdio.h>
int main()
{
int i,j;
for(i=70;i>=65;i--)
{
for(j=70;j>=i;j--)
{
printf("%c",j);
}
printf("\n");
}
}
在此基础上进行加工,实现下列图案
F
_FE
__FED
___FEDC
____FEDCB
_____FEDCBA
#include <stdio.h>
int main()
{
int i,j,t;
int k=0;
for(i=70;i>=65;i--)
{
for(t=0;t<k;t++)
{
printf("_");
}
for(j=70;j>=i;j--)
{
printf("%c",j);
}
k++;
printf("\n");
}
}
8、输出钻石型
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,k;
int line; // 菱形总行数
int column; // 菱形总列数
printf("请输入菱形的行数(奇数):");
scanf("%d", &line);
if(line%2==0)
{
printf("必须输入奇数!\n");
exit(1);
}
column = line; // 总行数和总列数相同
int space = (column-1)/2;
for(i=1;i<=(line+1)/2;i++,space--)
{
for(j=space;j>0;j--)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++)
{
printf("*");
}
for(j=space;j>0;j--)
{
printf(" ");
}
printf("\n");
}
space = 1;
for(i=(line+1)/2-1;i>0;i--,space++)
{
for(j=space;j>0;j--)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++)
{
printf("*");
}
for(j=space;j>0;j--)
{
printf(" ");
}
printf("\n");
}
return 0;
}
9、从终端随机输入N个数,求和
#include <stdio.h>
#include <stdlib.h>
int main()
{
int sum=0;
int num;
int n,i;
printf("要输入几个数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("请输入第%d个数",i);
scanf("%d",&num);
sum += num;
}
printf("这%d个数的和为:%d\n",n,sum);
exit(0);
}
10、 从终端实现循环输入,每次输入时随机输入数字,输出如下功能:
1
A
2
B
BA
3
C
CB
CBA
4
D
DC
DCB
DCBA
#include <stdio.h>
int main()
{
int i,j,t,n;
while(1)
{
printf("输入一个数:\n");
scanf("%d",&n);
n = 64+n;
for(i=n;i>=65;i--)
{
for(t=n;t>i;t--)
{
printf(" ");
}
for(j=n;j>=i;j--)
{
printf("%c",j);
}
printf("\n");
}
}
}
11.求素数(prime)(求30000000到30000200之间的素数)
#include <stdio.h>
int main()
{
int a,num,n;
for(num=30000000;num<=30000200;num++)
{
n=0;
for(a=2;a<num;a++)
{
if(num%a==0)
{
n = 1;
break;
}
}
if(n != 1)
{
printf("%d——是素数\n",num);
//break;
}
}
return 0;
}
12.从终端输入几个成绩,结束后,输出其中的最大值和最小值
#include <stdio.h>
int main()
{
int max = 0;
int min = 100;
int score;
int n=1;
printf("请输入要比较的成绩:\n");
while(score != 0)
{
printf("请输入第%d项成绩(输入0退出):\n",n);
scanf("%d",&score);
if(score > 100 || score < 0)
{
printf("输入成绩有误\n");
return 1;
}
if(score > 0)
{
max = max < score ? score:max;
min = min > score ? score:min;
}
else
break;
n++;
}
printf("最大值:%d\n最小值:%d\n",max,min);
return 0;
}