编程问题 大神们看看问题在啊里?
某地绿化造林,按计划:第一年种植树木x颗,后续每年都种树,第 i 年种植的树木是第 i-1 年的 3 倍。输入需要种植树木的总数量与第一年种植的颗数,请编程计算第几年可完成任务。输入格式:输入2个整数,用空格分隔。分别是需要种植树木的总数量与第一年种植的颗数输出格式:n,n完成任务的年数。#include <stdio.h> #include <math.h>
int main()
{
float nub,x,i,y=0,c=0;
scanf("%f%f",&nub,&x);
for(i=0;i<=100;i++)
y=y+pow(3,i)*x;
if(nub<=y)
printf("%f",i+1);
return 0;
} for循环没加大括号 for后面的大括号加上试试 for后加大括号把最后四行都括起来,if后加大括号把最后两行括起来 最明显的两个问题,怎么都没有人提呢
1.题目要求输入整数,为什么用浮点数?
2.题目要求输出年份数,但是你这逻辑,输出的是在未完成前的全部年数吧 int main()
{
inttotal , //总数
a , //第一年
i = 0 ,//计数
tem = 0 , //某年植数
sum = 0 ;
float n = .0 ; //年数
scanf( "%d%d" , &total , &a );
//就不验证这两个数了
while ( total <= sum )
{
tem = a * pow ( 3 , i ++ );
sum += tem ;
}
if ( sum - total )
n += (float)( sum - total ) / (float)( tem );//不考虑季节
n += (float) ( i ) ;
printf( "%f" , n);
return 0;
} #include <stdio.h>
#include <math.h>
int main()
{
int nub,x,i,y=0,c=0;
scanf("%d,%d",&nub,&x);
for(i=0;;i++)
{
y=y+pow(3,i)*x;
if(y>=nub)break;
}
printf("%d",i+1);
return 0;
} tiepeng 发表于 2022-5-10 00:56
int main()
{
inttotal , //总数
用记事本编辑后,就直接发上来了。
刚才一看,有个很直白的错误:
while 行,循环条件应该把sum跟total倒一下,
实在有愧。
页:
[1]