今日三题(仅供自己学习)
2016.数据的交换输出
#include<stdio.h>
#include<math.h>
void main(){
int a[100],n,i,j,k,min,t,p;
printf("请输入个数:");
scanf("%d",&n);
if(n!=0){
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
min=a[0];
for(j=0;j<n;j++){
if(a[j]<min){
min=a[j]; //记录j位置
p=j; //放在全局变量里面
}
}
t=a[0];
a[0]=a[p];
a[p]=t;
for(k=0;k<n;k++){
printf("%d ",a[k]);
}
}
else
exit();
}
2017.字符串统计
#include<stdio.h>
#include<math.h>
void main(){
char a[100];
int sum=0,n,i;
printf("请输入个数:");
scanf("%d",&n);
while(n--){
scanf("%s",&a);
sum=0;
for(i=0;i<strlen(a);i++){
if(a[i]>='0'&&a[i]<='9'){
sum++;
}
}
printf("一共%d个数字\n",sum);
}
}
(0~9的表示没写对)
2018.母牛的故事
解题思路:
第一年:1
第二年:2
第三年:3
第四年:4
第五年:6
第六年:9
第七年:13
第八年:19
第九年:28
第十年:41
上面是利用题目描述推得的数据
观察规律:
利用数组解决:
0号位置不用,将1到4号位分别存入1,2,3,4
最后可以找到规律:当n>4时
a[i]=a[i-1]+a[i-3];
实际问题的理解:
现在的牛的数量等于前一年的牛的数量加上新出生的牛的数量
新出生的牛的数量等于从该年起往前三年的牛的数量,只有这些牛才会生出新的小牛
#include<stdio.h>
#include<math.h>
void main(){
int sum,a[100],i,n;
printf("请输入个数:");
while(scanf("%d",&n)!=EOF){
if(n!=0){
if(n>0&&n<55){
for(i=1;i<=4;i++){
a[i]=i;
}
for(i>5;i<=n;i++)
a[i]=a[i-1]+a[i-3];
}
printf("一共%d头母牛\n",a[n]);
}
else
exit();
}
}
总会有错,还要加强练习