1.
注意事项:“且”的运算符应该为“&&”,“或”的运算符应该为“||”。
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
if(a+b>=0&&a+b<=3)
{
printf("YES");
}
if(a+b>=4)
{
printf("NO");
}
if(a+b<0)
{
printf("negative");
}
return 0;
}
2.
题目中的每一个条件应该属于选择或者关系,所以每一个if语句后面都应该加上else,否者没有加上else的所有if语句会当作一个判断。例如
#include<stdio.h>
int main()
{
int a,b,c,d;
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a+b>10)
{
printf("%d",a*b);
}
if(b+c>5)
{
printf("%d",c*d);
}
if(d<10||a*c>100)
{
printf("Yes");
}
else
{
printf("No");
}
}
运行结果如下
它同时满足了第二个和第三个if,会被一起输出。
正确如下
#include<stdio.h>
int main()
{
int a,b,c,d;
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a+b>10)
{
printf("%d",a*b);
}
else
if(b+c>5)
{
printf("%d",c*d);
}
else
if(d<10||a*c>100)
{
printf("Yes");
}
else
{
printf("No");
}
return 0;
}
3.
反转数组就是将第0个和最后一个(第n-1个)数值对换,第1个和倒数第二个(第n-2个)数值对换,依次类推,第i个和第n-1-i个数值对换。
首先先输入n,表示一共有几个数,然后需要一个for循环来向数组中录入不超过n个数,并保留数组下标,最后for循环逆序输出数组下标对应的值。
#include<stdio.h>
int main()
{
int n,a[100000];
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
printf("%d\n",n);
for(i=n;i>=1;i--)
printf("%d ",a[i]);
}
运行结果如下
4.
一个数的阶乘=1×2×3×……×n,所以需要一个for循环来从1一直乘到n,同时也需要一个空间来记录每一次for值增加所乘积的值。
#include<stdio.h>
int main()
{
int n,sum=1;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
sum=sum*i;
}
printf("%d",sum);
return 0;
}