携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
题目描述
解题思路
第一步:把整个字符串逆序 第二步:把每次单词序
代码
#include <stdio.h>
void f(char* p,int n)
{
int i = 0;
int j = n;
char temp;
while (i < j)
{
temp = p[i];
p[i] = p[j];
p[j] = temp;
i++; j--;
}
}
int main()
{
char arr[81];
gets(arr);
int n = strlen(arr)-1;
//整个字符串逆序
f(arr,n);
//每个单词逆序
int i = 0,count=0;
for (i=0;i<=n+1;i++)
{
if (arr[i] == ' '||arr[i]=='\0')
{
f(arr + i - count, count - 1);
count = 0;
}
else
count++;
}
printf(arr);
return 0;
}
题目描述
解题思路
这个题目最坑人的地方是多项式的第一项求导为0的情况,要输出为
0 0除了第一项外的其他项,其他项即使求导为0,也不打印0
代码
arr数组储存系数,brr数组储存指数j控制的是求导之后的系数和指数的下标。
#include <stdio.h>
int main()
{
int arr[100], brr[100];
int i = 0, j = 0, a;
while (scanf("%d %d", &arr[i], &brr[i]) != EOF)
{
if (arr[0] == 0 && brr[0] == 0)
{
printf("0 0");
}
if (brr[i] == 0);
else
{
arr[j] = arr[i] * brr[i];
brr[j] = brr[i] - 1;
j++;
}
i++;
}
for (a = 0; a < j; a++)
{
printf("%d %d", arr[a], brr[a]);
if (a != j - 1)
printf(" ");
}
return 0;
}
题目描述
解题思路
这个题目本身的问题就是怎么解决两个数的越界问题, 但是
A+B>C可以转换为砍一半进行比较。 注意: 1.砍一半之后要转换成浮点型。 2.不要这样写(double)(A+B),因为这这样A+B也可能越界。具体处理看代码
代码
#include <stdio.h>
int main()
{
int n,i;
int a[11], b[11], c[11];
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d%d%d", a + i, b + i, c + i);
}
for (i = 1; i <= n; i++)
{
//这样进行比较
if (((double)a[i - 1] / 2 + (double)b[i - 1] / 2) > (double)c[i - 1] / 2)
{
printf("Case #%d: true\n", i);
}
else
{
printf("Case #%d: false\n", i);
}
}
return 0;
}