30,369
社区成员




1.题目:有1、2、3、4四个数字,能组成什么样的3位数?
#include<stdio.h>
int main()
{
int x, y, z;
for (x = 1; x < 5; x++)
{
for (y = 1; y < 5; y++)
{
for (z = 1; z < 5; z++)
{
if (x != y, y != z, z != x)
printf("% d, % d, % d\n", x, y, z);
}
}
}
return 0;
}
2.题目:给定一个整数数组和一个整数目标值,请你在该数组中找出 和为目标值的那 两个 整数,并返回它们的数组下标。
以3,2,4组成6为例:
#include<stdio.h>
int main()
{
int x[3] = { 3,2,4};
int i, j;
for (i = 0; i < 5; i++)
{
for (j = i + 1; j < 5; j++)
{
if (x[i] + x[j] == 6)
{
printf("两个数下标为:\n");
printf("[%d,%d]",i,j);
}
}
}
}
虽然运行出来了,但是在上交答案时告诉我编码错误,于是我看了一眼其他大佬们的做法:
int* twoSum(int* nums, int numsSize, int target) {
int i,j;
int *result=NULL;
for(i=0;i<numsSize-1;i++)
{
for(j=i+1;j<numsSize;j++)
{
if(nums[i]+nums[j]==target)
{
result=(int*)malloc(sizeof(int)*2);
result[0]=i;
result[1]=j;
return result;
}
}
}
return result;
}
但有的地方并没有看明白……,不过这是进阶,等过一阵学的再多一点可能就理解了。同时也明白了,为什么我的不能算对,我的需要修改上面的数,怎么可能对嘛……
三、题目:企业发放的奖金根据利润提成。
从键盘输入当月利润I,求应发放奖金总数?
这是我的答案,不仅错了,运行之后还是乱码,不能理解:
#include<stdio.h>
int main()
{
double x, y;
printf("利润i为:\n");
scanf_s("%1f", &x);
if (x <= 10)
{
y = x * 0.1;
printf("奖金数为:%1f", y);
}
else if(x<=20)
{
y = 10 + (x - 10) * 0.075;
printf("奖金数为:%1f", y);
}
else if ( x <=40)
{
y = 20 + (x - 20) * 0.05;
printf("奖金数为:%1f", y);
}
else if (x <=60)
{
y = 40 + (x - 40) * 0.03;
printf("奖金数为:%1f", y);
}
else if ( x <=100)
{
y = 60 + (x - 60) * 0.015;
printf("奖金数为:%1f", y);
}
else
{
y = 100 + (x - 100) * 0.01;
printf("奖金数为:%1f", y);
}
return 0;
}
不过,看一眼答案:
#include<stdio.h>
int main()
{
double i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
printf("你的净利润是:\n");
scanf("%lf",&i);
bonus1=100000*0.1;
bonus2=bonus1+100000*0.075;
bonus4=bonus2+200000*0.05;
bonus6=bonus4+200000*0.03;
bonus10=bonus6+400000*0.015;
if(i<=100000) {
bonus=i*0.1;
} else if(i<=200000) {
bonus=bonus1+(i-100000)*0.075;
} else if(i<=400000) {
bonus=bonus2+(i-200000)*0.05;
} else if(i<=600000) {
bonus=bonus4+(i-400000)*0.03;
} else if(i<=1000000) {
bonus=bonus6+(i-600000)*0.015;
} else if(i>1000000) {
bonus=bonus10+(i-1000000)*0.01;
}
printf("提成为:bonus=%lf",bonus);
printf("\n");
}
修改一下我的:
#include<stdio.h>
int main()
{
double x, y;
double bonus1, bonus2, bonus4, bonus6, bonus10;
printf("利润i为:\n");
scanf_s("%1f", &x);
bonus1 = 100000 * 0.1;
bonus2 = bonus1 + 100000 * 0.075;
bonus4 = bonus2 + 200000 * 0.05;
bonus6 = bonus4 + 200000 * 0.03;
bonus10 = bonus6 + 400000 * 0.015;
if (x <= 100000)
{
y = x * 0.1;
printf("奖金数为:y=%1f", y);
}
else if (x <= 200000)
{
y = bonus1 + (x - 100000) * 0.075;
printf("奖金数为:%1f", y);
}
else if (x <= 40)
{
y =bonus2+ (x - 200000) * 0.05;
printf("奖金数为:%1f", y);
}
else if (x <= 60)
{
y =bonus4 + (x - 400000) * 0.03;
printf("奖金数为:%1f", y);
}
else if (x <= 1000000)
{
y =bonus6 + (x - 600000) * 0.015;
printf("奖金数为:%1f", y);
}
else
{
y =bonus10 + (x - 1000000) * 0.01;
printf("奖金数为:%1f", y);
}
return 0;
}
不过还是不行……好吧。有没有大佬愿意帮我看一下嘞?