y不应该定义成int 型,因为两个整数相除得到的还是整数,后面的小数部分会丢失的,后面if判断的条件也有所欠缺。y应该是float或者double类型。
改法:
删掉int y
float y=1.0*(float)(chesu-xiansu)/(float)xiansu;
if(y>0.1&&y<0.5)
说实话你这个程序后面一般人都看不懂最后输出的是什么意思,我写了个,你可以参考下。
#include
void main()
{
int speed,limit;/*车速,限速*/
printf("please Input speed and limit speed:\n");
scanf("%d%d",&speed,&limit);
float x=(float)speed/(float)limit;
if(x>1.1&&x<1.5)
printf("罚款200\n");
if(x>=1.5)
printf("吊销驾驶证\n");
}
参考代码如下:
#include
#define N 100
int Max(int num[],int n,int *j)
{
int max,i;
max=num[0];
*j=0;
for(i=1;i{
max=num[i]>max?(*j=i,num[i]):max;
}
return max;
}
int Min(int num[],int n,int *j)
{
int min,i;
min=num[0];
*j=0;
for(i=1;i{
min=num[i]}
return min;
}
int main()
{
int n,num[N],i,j;
scanf("%d",&n);
for(i=0;iscanf("%d",&num[i]);
printf("max=%d 下标%d\n",Max(num,n,&i),i);
printf("min=%d 下标%d\n",Min(num,n,&j),j);
return 0;
}
#include
#include
void arry(){
int *num,*numA;
int n,i,j,temp,max,min;
printf("请输入数组大小:");
scanf("%d",&n);
while(n<=0){
printf("数组大小必须大于0!\n\n");
arry();
}
numA= (int *)malloc(sizeof(int)*n);
num= (int *)malloc(sizeof(int)*n);
for(i=0;i
scanf("%d",&num[i]);
numA[i]=num[i];
}
for(i=0;i
}
for(i=0;i
numA[j]=numA[j+1];
numA[j+1]=temp;
}
}
}
for(i=0;i
max=i;
}else if(num[i]==numA[n-1]){
min=i;
}
}
printf("这个数组的最大值是:%d,其对应的下标是:%d.\n",numA[0],max);
printf("这个数组的最小值是:%d,其对应的下标是:%d.\n",numA[n-1],min);
}
void main(){
arry();
}