小编use*_*862的帖子

在c中不推荐将字符串常量转换为'char*'

我正在使用字符串.

每当我执行下面的程序时,我都会收到一个错误,因为在行中c*的字符串常量被转换为'char 'char *p = "hello"

我究竟做错了什么?

这个错误是什么意思?我怎么能纠正它?

我的代码是:

#include<stdio.h>
int main()
{
    char *p = "hello";
    printf("%s",p+1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c

11
推荐指数
2
解决办法
6511
查看次数

机器人在网格中移动

机器人位于4x4网格的左上角.机器人可以向上,向下,向左或向右移动,但不能两次访问同一地点.机器人正试图到达网格的右下角.它可以到达网格右下角的方式是多少?

现在我知道如果机器人只能向下或向右移动,那么答案将是8C4,因为它必须以任意顺序向右移动4个方格,向下移动4个方格.

但是当机器人可以向左和向上移动时,我很难解决问题!?

我只需要一个提示来解决问题!我应该如何处理这个问题?

algorithm

5
推荐指数
1
解决办法
6055
查看次数

默认情况下忽略null字符

我正在尝试用数组实现堆栈!每次我执行程序运行正常,但我收到警告,因为默认情况下忽略了空字符

这个警告意味着什么?我做错了什么?

我的代码是:

#include<stdio.h>
#include<stdlib.h>
# define MAX 10
int top=-1;
int arr[MAX];
void push(int item)
{
    if(top==MAX-1)
    {
        printf("OOps stack overflow:\n");
        exit(1);
    }
    top=top+1;
    arr[top]=item;
}//warning
int popStack()
{
    if(top==0)
    {
        printf("Stack already empty:\n");
        exit(1);
    }
    int x=arr[top];
    top=top-1;
    return x;
}
void display()
{
    int i;
    for(i=top;i>=0;i--)
    {
        printf("%d ",arr[i]);
    }
    return;
}
int peek()
{
    if(top==-1)
    {
        printf("\nEmpty stack");
        exit(1);
    }
    return arr[top];
}
int main()
{
     int i,value;
     printf(" \n1. Push to stack");
     printf(" \n2. …
Run Code Online (Sandbox Code Playgroud)

c stack warnings

5
推荐指数
3
解决办法
2万
查看次数

如何解释输出?

我在c中处理指针,当我运行以下代码时,我得到"l"作为输出!为什么?

char *s = "Hello, World!";
 printf("%c", 2[s]);
Run Code Online (Sandbox Code Playgroud)

2 [s]表示什么?

c pointers

4
推荐指数
1
解决办法
140
查看次数

查找树是否是二叉搜索树

这种方法是否错误,以确定树是否是BST?节点的左子树仅包含键小于节点键的节点.节点的右子树仅包含键大于节点键的节点.左右子树也必须是二叉搜索树.我的代码是:

isBST(struct node* node) 
{ 
  if (node == NULL) 
    return 1; 
  if (node->left != NULL && node->left->data > node->data) 
    return 0; 
  if (node->right != NULL && node->right->data < node->data) 
    return 0; 
  if (!isBST(node->left) || !isBST(node->right)) 
    return 0; 
  return 1; 
}
Run Code Online (Sandbox Code Playgroud)

c binary-search-tree

3
推荐指数
1
解决办法
345
查看次数

为什么以下代码有误?

我最近遇到了一个面试问题,关于以下代码的隐藏问题是什么.我无法察觉它.任何人都可以帮忙吗?

#include<stdio.h>

int main(void)
{
    char buff[10];
    memset(buff,0,sizeof(buff));

    gets(buff);

    printf("\n The buffer entered is [%s]\n",buff);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c algorithm output

2
推荐指数
1
解决办法
208
查看次数

一个递归函数,用于查找c中数组的总和

我必须找到一个递归函数,通过反复将它分成2个几乎相等的部分来找到数组的总和?

我的方法应该是什么?我该怎么办?

我不要求代码!只是提示或方向来解决这个问题!

c arrays

1
推荐指数
1
解决办法
339
查看次数

一轮浮动值

我正在设计一个收银机,我必须比较2个浮点值,每次比较时我都会收到错误.ie因为我无法将最多2位小数的差值四舍五入并将其与值进行比较.

例如.如果客户支付的金额为60.36且发出的账单为30.24,则差异为30.120001.我甚至尝试使用floor函数将其四舍五入为二位数:floorf(diff*100 + .5)/ 100; 但它不起作用.

我应该如何舍入十进制数字并将其用于设计收银机?

c floating-point floating-point-precision

0
推荐指数
1
解决办法
135
查看次数

从文件中读取分号分隔的字符串

如何阅读 ";" 从c中的文件中分离出字符串?我使用以下方法:

char c;
c=fgetc(fp);
while(c!=EOF)
{
    int k=0;
    if(c=='\n')
    c=fgetc(fp);
    while(c!=';')
    {
        str1[k]=c;
        k++;
        c=fgetc(fp);
    }
    str1[k]='\0';
    c=fgetc(fp);
    k=0;
    while(c!=EOF && c!='\n')
    {
        str2[k]=c;
        k++;
        c=fgetc(fp);
    }
    str2[k]='\0';
    Seq(str1,str2);
    printf("\n");
    if(c==EOF)
    {
        break;
    }
    else
    c=fgetc(fp);
}
Run Code Online (Sandbox Code Playgroud)

输入文件:

     Hello;world

     Male;Female

     where;who
Run Code Online (Sandbox Code Playgroud)

我必须读取不同的字符串值,然后将它们传递给Seq(hello,world)等函数.依此类推

有更好的方法吗?

c string file

0
推荐指数
1
解决办法
4025
查看次数