小编Bil*_*nch的帖子

为什么这个y/n程序没有输出

我有一个小C程序的问题.它输出一个问题(见下面的代码),我可以将输入放入(y和n),但之后没有其他任何事情发生,即使它是根据输入的输入(y或n)打印某些东西.但是,在我的问题之后没有输出任何内容,程序就会退出.这是代码:

#include <stdio.h>

int main()
{
        char string [80];
        static char y;
        static char n;
        printf( "ARE YOU SHAQIRI? [y/n]: " );
        scanf( "%s", string );
        if ("%s" == "y")
                printf("That's impossible. YOU CANNOT BE SHAQIRI YOU IDIOT");
        else if ("%s" == "n")
              printf("I thought not.");
        fflush ( stdin );
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

c string conditional stdin

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

Python:此示例中用于文本解析的良好正则表达式

有发音的单词.无论如何,我有兴趣提取第一个单词

A  AH0
A'S  EY1 Z
A(2)  EY1
A.  EY1
A.'S  EY1 Z
A.S  EY1 Z
A42128  EY1 F AO1 R T UW1 W AH1 N T UW1 EY1 T
AAA  T R IH2 P AH0 L EY1
AABERG  AA1 B ER0 G
AACHEN  AA1 K AH0 N
AAKER  AA1 K ER0
AALSETH  AA1 L S EH0 TH
AAMODT  AA1 M AH0 T
AANCOR  AA1 N K AO2 R
AARDEMA  AA0 R D EH1 M AH0
Run Code Online (Sandbox Code Playgroud)

我试过了 regex= r"(\A[A-Z]+\b) | …

python regex python-2.7

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

存在溢出时的整数运算

处理两个32位整数值A和B,以按照以下规则给出32位整数C和D. 哪些规则是可逆的?也就是说在所有情况下都可以获得给定c和D的A和B?

A. C =(int32)(A + B),D =(int32)(AB)

B. C =(int32)(A + B),D =(int32)((AB)>> 1)

C.C =(int32)(A + B),D = B.

D. C =(int32)(A + B),D =(int32)(A + 2*B)

E. C =(int32)(A*B),D =(int32)(A/B)

关于整数运算的几个问题.模块化加成形成称为阿贝尔群的数学结构.签名加法怎么样?它也是可交换的(这是"阿贝尔"部分进入的地方)和联想,这是一个阿贝尔群体吗?

鉴于整数加法是可交换和关联的,C显然是正确的,因为我们可以通过(A +(BB))检索A. D怎么样?我们可以假设2 * B = B + Bst.B = A+B+B-(A+B)

乘法更复杂,但我知道如果有溢出则无法检索A.

c c++ integer-arithmetic

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

我可以在if语句中使用"x = 2"作为参数吗?

所以我刚刚参加了CS101 C++测验,这是其中一个问题:

int x=5;
if(x=2)
  cout <<"this is true"<<endl;
else
  cout <<"this is false"<<endl;
  cout <<"this is all folks"<<endl;
Run Code Online (Sandbox Code Playgroud)

下面给出了可能输出的选择

a. this is true
b. this is false
c. this is true
   this is false
d. this is true
   this is all folks
e. None of the above
Run Code Online (Sandbox Code Playgroud)

现在我注意到if语句正在测试一个赋值所以我圈了e.)因为我认为输出应该是语法错误.我不认为作业不能被评价为真或假.导师标记我错了.原因是大于0的参数为真.我告诉教授,除非x = 2被圆括号包围,否则这是不可能的.x = 2本身不是真或假.然后教师说我们不应该期望测试或测验上的代码可以运行逻辑正在测试而不是语法.但逻辑上x = 2既不是真的也不是假的,对吧???

我不是在争论这些观点; 我错了两个中只有一个.但是教练坚持认为测验问题写得正确并结束了对话.我不认为导师很感激我对此提出质疑......她非常粗鲁地把我拉了过来.无论如何我使用vim/g ++运行代码并且它给了我语法错误,建议我在括号中添加括号.是不是有些编译器更挑剔?

c++ computer-science

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

C分段故障错误

我正在编写一个程序,其目的是将一个字符串数组发送到一个函数,然后该函数将对数组进行冒泡排序,将数组中较短的字符串移动到前面并将较长的字符串移动到后面所以预期的输出应该是"shortest is cat, longest is elephant".

这似乎是直截了当但我得到了一个分段错误,我已经查看了代码的索引,但它似乎没有超出界限所以我不确定发生了什么.这是我的示例代码.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void fx(char* array[],int size);

int main()
{
    char* t[]= {"horse","elephant","cat","rabbit"};
    int n;

    n = sizeof(t)/ sizeof(t[0]);
    fx(t,n);

    printf("shortest is %s, longest is %s\n",t[0],t[n-1]);
}

void fx(char* array[],int size)
{
    int i;
    int current,next,unsorted;
    char* stringTemp;

     do {
        unsorted = 0;

        for(i = 0; i < size-1; i++)
            current = strlen(array[i]);
            next = strlen(array[i+1]);
            if( current > next )
            {
                stringTemp = array[i];
                array[i] = array[i+1]; …
Run Code Online (Sandbox Code Playgroud)

c arrays string segmentation-fault

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

在C中使用字符串插入二叉树

我的插入函数遇到了字符串的二叉树问题.我递归地这样做.有两个编译错误,我似乎无法摆脱它,它与人们的名字有关.我将发布我的代码和我的错误以及示例输出和我应该阅读的文件.我的教授给我们显示功能,使它看起来像一个特定的方式.我在这里先向您的帮助表示感谢.

#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>

#define MAX_NAME_LEN 25
#define START_DEPTH 0

typedef struct TreeNode_ {
    char name[MAX_NAME_LEN];
    struct TreeNode_ *left;
    struct TreeNode_ *right;
}TreeNode;

TreeNode* read_from_file(const char* file);
TreeNode* insert(TreeNode* node, const char *name);
TreeNode* create_node(const char *name);

int main (int argc, char *argv[]) {
    /*
     * Check command line parameters
     * */
    if (argc < 2) {
            printf("%s is missing parameters to run properly\n", argv[0]);
            return 1;
    }
    TreeNode* root = NULL;
    root = read_from_file(argv[1]);

    display_tree(root,START_DEPTH);
}

TreeNode* read_from_file(const …
Run Code Online (Sandbox Code Playgroud)

c string malloc binary-tree compiler-errors

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

C - Freeing Malloc.运行时出错

我不知道我的程序有什么问题.我使用一个循环使用malloc分配内存,当我去释放它时,它给了我以下错误:

"*** glibc detected *** ./assignment4: free(): invalid pointer: 0x08eeb196 ***
Run Code Online (Sandbox Code Playgroud)

该错误伴随着具有标题存储器映射的列表.循环从1到7运行.奇怪的是当我释放[0]字符串的值时,我没有得到任何错误.该错误只与我尝试释放上来[1][7]其使用循环malloced.

void lineParse()
{
    int i;
    FILE *fp;
    fp = fopen("specification.txt", "r");

    char ** listofdetails; 
    listofdetails = malloc(sizeof(char*)*6);

    for(i=0;i<6;i++)
    {
        listofdetails[i] = malloc(sizeof(char)*40);
        fgets(listofdetails[i], 40, fp);
        /*printf("%s \n", listofdetails[i]);*/
        /*free(listofdetails[i]);*/
    }


    char ** stringOne; 
    stringOne = malloc(sizeof(char*)*8);

    stringOne[0] = malloc(sizeof(char)*6);
    stringOne[0] = strtok(listofdetails[0], " ");

    for(i=1;i<8;i++)
    {
        stringOne[i] = malloc(sizeof(char)*6);
        stringOne[i] = strtok(NULL, " ");
    }

    char ** stringTwo; 
    stringTwo = malloc(sizeof(char*)*8);

    stringTwo[0] …
Run Code Online (Sandbox Code Playgroud)

c malloc

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

如何使用指针从函数传递堆上的对象地址

我正在尝试在堆上创建一个对象,然后从调用函数传回它的地址,但我无法让它工作!

如果从main调用此函数,为什么我不能将对象的地址存储在新指针中?

Feline newFeline(int height, int weight) {
  Feline *myFeline = new Feline(height, weight);
  return *myFeline;
}

int main()
{
  Feline *f2;
  *f2 = newFeline(10, 100);
  //cout << f2->getHeight() << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到一个总线错误:10.哦,我喜欢猫.

c++ pointers

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

将事物总结为数组的程序

这本书要求我回答"你对以下程序有什么期望?"

在阅读了很多次后,我似乎并不完全理解它的内部运作.

从我得到的:

  1. First For循环确定此过程将重复10次.变量j被指定为从0开始.
  2. 第二个for循环启动变量i为0并且建立条件i <j并且在其之后写入操作.

到底发生了什么?j从0开始,我也是,因此数字[j] + =数字[i]等于2?

完成此操作后会发生什么?

如果i和j等于0那么为什么这个条件i <j为真?

int main (void)
{
    int numbers[10] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    int i, j;

    for ( j = 0; j < 10; ++j )
        for ( i = 0; i < j; ++i )
            numbers[j] += numbers[i];

    for ( j = 0; j < 10; ++j )
        printf ("%i ", numbers[j]);

    printf ("\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c arrays

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

指向成员属性的指针

我有一个功能f(unsigned char ** data);.另外,我有一个指向pObj 带有unsigned char* pbCert成员的对象的指针.因此,我想执行如下操作:

f(pObj->&pbCert);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我收到了member identifier expected错误.

我设法使用这种方法解决问题:

unsigned char* temp = pObj->pbCert;
f(&temp);
Run Code Online (Sandbox Code Playgroud)

但是我很好奇,是否有一些聪明的记法技巧只在一行中做到这一点?

c

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