告诉我python中有哪些工具可以对数组进行排序,使最常重复的值排在最前面?
Антон Вел's questions
告诉我如何在 C 中实现一个将void指针和长度作为输入的函数size_t
void zerobyte(void *p, size_t n)
该程序应按照以下原则工作
void main()
{
int p = 3; //00000011
zerobyte(&p, 1);//p должен стать 2
p = 3;
zerobyte(&p, 2);//а тут p должен стать 0
}
问题是我可以找到如何仅重置第一位的最大值
void zerobyte(void *p, size_t n)
{
p &= ~0x01;
}
我不知道如何做到这一点。如何实现此功能?
我在实现所需功能时遇到了一点困难。我需要检查文件中具有特定字符的所有行(文件大小从 1 到 10k 行),以及该行是否包含相同的字符。以 XY 格式写入其坐标,并在输出中获取包含指定字符数的 int 值。以及它们每个的坐标以供进一步处理。(特别是:您需要找到指定字符之间的最大可能正方形区域,重点是接收到的 XY 格式坐标)而主要问题恰恰在于我只是无法弄清楚如何准确地实现过渡Y坐标的线取决于它们。例如,在两行 qwerty ytrewq 我不知道如何写 sq.x = 2; sq.y = 1; 获取字母 t(第二个字符串,索引 char 1)
下面是我尝试实现的示例演示代码。不幸的是,对我来说没有任何结果,但我至少会非常感谢您提供关于该主题的挖掘方向的提示。先感谢您。
void ft_sear_sq(char *maps, int max_x, int max_y, char p)
{
typedef struct s_coord
{
int x;
int y;
} t_coord;
t_coord sq;
int i;
int max_pl;
int kol_pr;
sq.x = 1;
sq.y = 0;
kol_pr = 0;
i = 0;
while (sq.x < max_x)//считаю количество препятствий
{
while (maps[sq.y] != '\n')
{
if (maps[sq.y] == p)
kol_pr++;
sq.y++;
}
sq.x++;
sq.y = 0; //как сдвигать sq.y вниз на сторчку в зависимости от х?
}
max_pl = (max_x * max_y) - kol_pr;
max_pl = ft_kor(max_pl);
sq.x = 1;
sq.y = 0;
while (i < (max_pl * max_pl))
{
if (maps[sq.y] != p)//сдвигаю sq.y пока он не равен символу ограничителю
{
sq.y++;
i++;
}
else//в случе если квадрат на поместился, уменьшаю его площадь на 1, и повторяю пока не найду квадрат, который поместится.
{
max_pl--;
i = 0;
sq.x = 1;
sq.y = 0;
}
if (maps[sq.y] == '\n')
{
sq.y = 0;//та же проблема, как сдвинуть ось Y на нужную строчку, в зависимости от x?
sq.x++;
}
}
}
功能代码本身
char *ft_strcpy(char *dest, char *src)
{
int i;
int n;
i = 0;
n = 0;
while (src[i] != '\0')
{
i++;
}
while (n++ < i)
{
*dest++ = *src++;
}
return (dest);
}
ph 是测试 main.c 的代码
#include <unistd.h>
#include <stdio.h>
#include <string.h>
char *ft_strcpy(char *dest, char *src);
int main()
{
char src[]="текст где больше символов чем в буфере";
char buf [5];
ft_strcpy(buf,src);
printf("%s", buf);
printf("\n");
printf("%s", src);
}
这是输出到控制台的结果:文本比缓冲区中的字符多
.st 字符比缓冲区多的地方.re%
告诉我他们来自哪里?我是否正确地重现了函数的行为?
告诉我为什么在编译过程中会出现这个错误。从逻辑上讲,一切都应该工作。代码本身
#include <unistd.h>
int ft_putchar(char c)
{
write(1, &c, 1);
return (0);
}
void ft_print_alphabet(void)
{
char ch[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int i;
i=0;
while(i<26)
{
ft_putchar(ch[i]);
i++;
}
}
int main()
{
ft_print_alphabet;//вот на этой строке возникает ошибка
return (0);
}
似乎我创建了一个数组并填充了它,在一个函数的帮助下我将它们打印在一行中,为什么编译器会说没有使用结果?
底线是:我正在尝试做一些实验,不是从书本上做谜题,而是从我的脑海里(因为现在注意力的焦点很模糊,创造力比临时抱佛脚更有效果)我'我试图实现将确定两个对象中哪个具有最好的战士特性的战斗方法。我既无法理解也无法在谷歌中找到它(我无法理解谷歌到底是什么)。如何在此方法中声明变量以使其工作。实际代码本身:
public class TestoPromo {
public static void main(String[] args) {
class Human {
String name;
int str;
int agi;
int vit;
public Human() {
}
public Human(String name, int str, int agi, int vit) {
this.name = name;
this.str = str;
this.agi = agi;
this.vit = vit;
}
}
class Orc {
String name;
int str;
int agi;
int vit;
public Orc() {
}
public Orc(String name, int str, int agi, int vit) {
this.name = name;
this.str = str;
this.agi = agi;
this.vit = vit;
}
}
Human gladiatorH1 = new Human("Гавриил",10,10,10);
Orc gladiatorO1 = new Orc("Ибрагим",12,7,11);
int humanScore=0;
int orcScore=0;
public int fight( orcGlad ; humanGlad ){//не могу понять что писать в этих скобках.
/*Здесь я выясняю победит орк, человек, или будет ничья*/
if (orcGlad.str+orcGlad.agi+orcGlad.vit>humanGlad.str+humanGlad.agi+humanGlad.vit)
orcScore++;
if (orcGlad.str+orcGlad.agi+orcGlad.vit<humanGlad.str+humanGlad.agi+humanGlad.vit)
humanScore++;
}
System.out.println("Текущий счет: люди "+humanScore+" Орки: "+orcScore);
}
}