C语言问题 求助

小明平日喜欢自己种一些东西,并以此为写程序和看电影之外的最大爱好。最近,小明种的一棵苹果树到了采摘的时候,但是由于小明身高的限制,有些苹果太高摘不到。于是小明借来了一个凳子,踩在上面可以摘到更多的苹果。 小明是一个懒于行动的人,他想在摘苹果之前知道自己能摘到多少苹果,如果实在太少(苹果树很茂盛,主要是由于身高原因),他宁可坐在树下等苹果自己掉下来砸到头上。【输入】有两行。第1行先是一个整数n(1≤n≤1000),表示苹果的个数,接着是n个整数,分别表示n个苹果的高度(不超过1000的正整数)。第2行是两个整数,分别表示小明的身高和凳子的高度。【输出】仅一行。一个整数m,表示小明最多能摘到m个苹果。我自己测试正确 但是提交却错误 {知码开门如图}#include <stdio.h>#include <stdlib.h>int main(){ int a,i,c,d,e=0; scanf("%d",&a); int b[a]; for(i=1;i<=a;i++) { scanf("%d",&b[i]); } scanf("%d%d",&c,&d); for(i=1;i<=a;i++) { if(b[i]<=c+d) e+=1; } printf("%d\n",e); return 0;}

第1个回答  2011-04-10
解释:(m1=f1>f2)此式子的值为1先进行>运算,在进行赋值运算。后式同此步,只不过后式的值为0,最后进行&&运算。一下程序是验证此话的正确性的。可以试一下。此题目的应该在于考察运算符的优先级的。
#include<stdio.h>
main()
{
int m1,m2;
float f1,f2,f3,f4;

m1=1;
m2=1;
f1=4;
f2=3;
f3=2;
f4=1;

if((m1=f1>f2)&&(m2=f3<f4))
return 1;
else
printf("hello world ");

printf("\n");
return 0;
}
第2个回答  2018-06-26
说白了,就是两层循环,第五行就是i从1加到5,执行五次,第七行是j从1加到5,也是执行五次。
但要注意了,i=1的时候,里面的要执行一次,这一次包含j的五次执行,所以一共是5*5次执行
第3个回答  2014-10-04
freopen("data.in","r",stdin); 将标准输入重定向到文件data.in
freopen("data.out","w",stout); 将标准输出重定向到文件data.out

标准输入:默认是来自于键盘
标准输出:默认是输出到屏幕

用以上语句,可以将想输入的数据先存到文件中,然后程序重定向后,从文件中读,并输出结果到文件中。
第4个回答  2010-01-22
B.double b=1+5e2.5--错误在E后面应跟整数
C.long do=0xfdaL----错误在于do为保留字
D.float 2_and=1-e-3--错误在于E前面应该有(数字)和小数点
short (int)--省略了关键字int,long也是省略了int
答案是A
不是.le 应该是.1e----是0.1的意思
signed 有符号
unsigned 无符号
long 长
Short 短
以上个人理解,仅供参考!
第5个回答  2013-05-27
#include <stdio.h>
int main()
{
int a;
printf("input number:");
scanf("%d",&a);
if(a>7||a<1)
printf("error!\n");
switch(a){
case 1:printf("Monday\n");break;
case 2:printf("Tuesday\n");break;
case 3:printf("Wednesday\n");break;
case 4:printf("Thursday\n");break;
case 5:printf("Friday\n");break;
case 6:printf("Saturday\n");break;
case 7:printf("Sunday\n");break;
}
return 0;
}
相似回答