牛客网华为机试题说明三
一. 牛客网华为机试题
7. 取近似值
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
数据范围:保证输入的数字在 32 位浮点数范围内
输入描述:
输入一个正浮点数值
输出描述:
输出该数值的近似整数值
示例1
输入:5.5
输出:6
说明:
0.5>=0.5,所以5.5需要向上取整为6
代码实现如下:
#include <stdio.h>
int main(int argc, char* argv[])
{
float value;
int data;
scanf("%f", &value);
data = value;
if((value -data) > 0.5)
{
printf("%d", (data+1));
}
else
printf("%d", data);
return 0;
}
8. 合并表记录
数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
提示:
0 <= index <= 11111111
1 <= value <= 100000
输入描述:
先输入键值对的个数n(1 <= n <= 500)
接下来n行每行输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例1
输入:
4
0 1
0 2
1 2
3 4
输出:
0 3
1 2
3 4
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int index;
int value;
} Table_s;
int array_compare(const void* array1, const void* array2)
{
return ((Table_s *)array1)->index - ((Table_s *)array2)->index;
}
int main(int argc, char* argv[])
{
int n;
int i, count = 0;
while(scanf("%d", &n) != EOF)
{
Table_s table[n];
Table_s out[n];
for(i=0; i<n; i++)
scanf("%d %d", &table[i].index, &table[i].value);
//下标从小到大排序
qsort(table, n, sizeof(table[0]), array_compare);
for(i=0; i<n; i++)
{ //因为排序了,只需判断上一个的index和当前的index是不是相等
if((count>0) && (out[count-1].index ==table[i].index))
{ //相等就累加value
out[count-1].value += table[i].value;
}
else
{ //否则加入到下一个节点中
out[count].index = table[i].index;
out[count].value = table[i].value;
count++;
}
}
for(i=0; i<count; i++)
printf("%d %d\n", out[i].index, out[i].value);
}
return 0;
}
9. 提取不重复的整数
描述
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。
数据范围: 1≤n≤108 1≤n≤108
输入描述:输入一个int型整数
输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1
输入:9876673
输出:37689
#include <stdio.h>
int main(int argc, char* argv[])
{
int value;
int m;
char a[10] = {0};
scanf("%d", &value);
while(value)
{ //每次取最低一位
m = value%10;
value = value/10; //去掉最低的一位数
a[m]++;
if(a[m] == 1) //取出第一次出现的数字
{
printf("%d", m);
}
}
return 0;
}
原文地址:https://blog.csdn.net/wojiaxiaohuang2014/article/details/137980674
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!