小编The*_*Cat的帖子

代码片段的渐近分析

我需要找到以下片段的大O运行时间:

sum =0; 
for (int i=1; i<n; i++) {
  for (int j=1; j< n/i; j++) {
    sum = sum +j;
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道外循环是O(n)但我在分析内循环时遇到问题.我认为这是O(log n).

big-o analysis

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

冰淇淋店的字符串程序(再次编辑)

在其他人的帮助下,我从头开始重做代码,因为他们指出了许多错误和无效的事情.因此我大量改变了代码.

我有程序工作,而不是两个格式设置,我无法弄清楚如何开始工作.

我只需要在输出的顶部打印一次"DAILY SCOOP REPORT",但我已经移动了它,但是由于数组的设置方式,我不知道放在哪里.

这是我的代码:

#include <iostream>
Run Code Online (Sandbox Code Playgroud)

包括

包括

包括

包括

包括

using namespace std;

int main(){string flavor_input,Capitalize; string flavors [] = {"Chocolate","Vanilla","Strawberry","Mint","Rocky Road","Mocha"}; int scoop_count [6] = {0,0,0,0,0,0},scoops = 0,j,k;

bool valid_option; 

cout << "Welcome to Frozen Tongue Ice Cream Shop\n"<<endl;
cout << "Flavors avaliable: "<<endl;
cout << "Chocolate "<<endl;
cout << "Valnilla "<<endl;
cout << "Strawberry "<<endl;
cout << "Mint "<<endl;
cout << "Rocky Road "<<endl;
cout << "Mocha \n"<<endl;

while(true) { 

    cout << "Please enter the …
Run Code Online (Sandbox Code Playgroud)

c++ string atoi

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

C家庭作业帮助:通过数组搜索

我正在研究一个问题,我给出了一个排序的整数数组,我应该从用户那里获取一个输入,搜索输入,并返回该输入的第一个实例(如果它存在)和它出现的次数.

我用以下方法编写了一个程序:我从用户那里得到了一个输入.然后我使用二进制搜索来查找值.如果它存在,那么我将索引存储为m.之后,我写了两个while循环.第一个循环检查左边的值的出现次数,第二个循环检查相同,但是向右.例如,二进制搜索可能正在寻找5,并且它找到它.然而,它落在第三个,即.{.....5,5,**5**,5....}.第一个while循环将计算左边的两个循环,而第二个循环将计算右边的一个循环.然后我将它们全部加起来并返回实例总数.如果输入值不存在,那么我跳过上述代码并简单地返回-1.

main函数体中,我然后检查返回值.如果是-1,我告诉用户该值尚未找到.如果返回值> = 0,则打印所需信息.

无论如何,我已经为程序编写了C代码,但我无法使其正常工作.我得到一个段.错误错误,我不知道我做错了什么.无论如何,任何帮助将不胜感激.我一直在为这个问题敲打头脑.这很有趣也很难,我认为我有正确的逻辑; 但我不能让它正常工作.无论如何,这里是代码:

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

/* function prototype */

int get_num_of_ints( const int* arr, size_t r, int N, size_t* f, size_t* count );

int main()
{   
    int i;
    int N;                                      /* input variable */
    int arr[]={1,1,2,3,4,4,4,4,5,5,6,7,7,7,7,8,9,9};                    /* array of sorted integers */
    size_t r = sizeof(arr[i])/sizeof(int);                      /* right bound */
    size_t f;                                       /* first match index */
    size_t *fPtr;
    fPtr …
Run Code Online (Sandbox Code Playgroud)

c arrays

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

苦苦挣扎使用calloc和realloc在C中初始化数组

我正在努力使用calloc和realloc进行数组初始化.我正在尝试编写一个程序,它使用fork()和一个伴随程序从命令行参数计算最终总和.

如果我从命令行收到一组奇数整数,例如:./ program 1 2 3 4 5.

它应该看到数量是奇数并将我的输入数组初始化为6个点并在最后一个点放置零.如下:[0] = 1,[1] = 2,[2] = 3,[3] = 4,[4] = 5,[5] = 0.这样我的同伴程序就能做到了计算.

如果我从命令行接收偶数量的整数,例如:./ program 1 2 3 4.它将执行与上面相同的操作,除非没有零,因为整数集是偶数.

输出数组应初始化为整数除以2的数量.因此,如果我有6个参数,它将被初始化为3.如果我收到奇数的整数,如7,它将重新分配输入数组并放入最后的零,从而产生整数8.因此它将它除以2并使输出初始化为4.

我的输出数组最终会保存每对数字的总和.所以上面就是这样.

1 + 2 = 3,3 + 4 = 7,5 + 0 = 5.

然后输出数组将保持[3],[7],[5].然后循环将从那继续并从剩余的参数计算最终总和.

我无法理解这一点,因为我的数组没有正确初始化,如果参数数为奇数,则将零添加到输入数组.

请参阅以下代码:

#include <stdio.h>   /* printf, stderr, fprintf */
#include <unistd.h>  /* _exit, fork */
#include <stdlib.h>  /* exit */
#include <errno.h>   /* errno */
#include <sys/wait.h>
int main(int argc, char** argv)
{
 int size = argc …
Run Code Online (Sandbox Code Playgroud)

c unix arrays

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

在没有null构造函数的情况下声明未初始化的变量

考虑这个DUPoint类,其声明如下所示.假设此代码出现在名为DUPoint.h的文件中:

#include <string>  
class DUPoint {  
public:  

  DUPoint (int x, int y);  

  int getX () const;  
  int getY () const;  

  void setX (int x);  
  void setY (int y);  

  void print();  

private:  
  int x_;  
  int y_;  
};
Run Code Online (Sandbox Code Playgroud)

是不是你不能DUPoint用一个语句声明一个未初始化的变量,例如DUPoint P;使用当前配置的这个类,因为它没有空构造函数?

c++

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

再次初始化变量

这可能听起来有点令人困惑.基本上,我有一个功能

CCard newCard() 
{
    /* Used to store the string variables intermittantly */
    std::stringstream ssPIN, ssBN;
    int picker1, picker2;
    int pin, bankNum;

    /* Choose 5 random variables, store them in stream */
    for( int loop = 0; loop < 5; ++loop )
    {
        picker1 = rand() % 8 + 1;
        picker2 = rand() % 8 + 1;
        ssPIN << picker1;
        ssBN  << picker2;
    }
    /* Convert them */
    ssPIN >> pin;
    ssBN  >> bankNum;

    CCard card( pin, bankNum );
    return …
Run Code Online (Sandbox Code Playgroud)

c++ oop class

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

Makefile循环依赖

这是我的Makefile:

.PHONY: all homework1
CFLAGS= -g -O0 -Wall -Werror -Wno-unused-function
LDFLAGS= -lm

all : homework1

homework1 : program.tab.o program.lex.o
%.o : %.c
    gcc -o$@ -c $(CFLAGS) $<
%.lex.c : %.lex %.tab.h
    flex -o$@ $<
%.tab.c %.tab.h : %.y
    bison --verbose -o$@ -d $<
Run Code Online (Sandbox Code Playgroud)

每当我尝试编译时,我都会收到警告,make: Circular program.lex <- program.lex.o dependency dropped.我看不出makefile中的program.lex依赖程度program.lex.o.我看到依赖树是如何约4层深,但它看起来不是圆形的.

如何改进我的makefile?

c dependencies makefile circular-dependency

4
推荐指数
3
解决办法
7344
查看次数

如何切断前导数字?C++

如何在不使用库的情况下切断数字的前导数字以仅显示最后两位数字.例如:

1923年至23日

2001年至01年

1234至34

123至23

只有

#include <iomanip>
#include <iostream>
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++ iomanip

4
推荐指数
2
解决办法
4967
查看次数

Java:For循环和If算法

我从创建一个商店的任务中得到了这个问题,该商店使用Store.java和Book.java出租书籍.我已经完成了这项任务,但我很想知道特定部分的更好算法.

-

Book.java

public class Book {

    private String name;

    Book(String name)
        this.name = name;

    public String getName()
        return name;

}
Run Code Online (Sandbox Code Playgroud)

Store.java

在main()内;

 Book bookObj[] = new Book[3]; //Create 3 Array of Object.
 bookObj[0] = new Book("Game Over");
 bookObj[1] = new Book("Shrek"); 
 bookObj[2] = new Book("Ghost");
 Scanner console = new Scanner(System.in)
 input = console.nextLine();
Run Code Online (Sandbox Code Playgroud)

假设,输入=恶魔.

现在,我需要进行简单的搜索以检查特定的书是否存在.

例:

 for(int i = 0; i < bookObj.length; i++) {
     if(bookObj[i].getName().equals(input))
         System.out.println("Book Found!");
 }
Run Code Online (Sandbox Code Playgroud)

显然,这是一个循环遍历对象数组并检查是否存在此Book的for循环.现在,当我想给出一个未找到Book的输出时,问题就出现了.

例:

 for(int i = 0; i < bookObj.length; i++) …
Run Code Online (Sandbox Code Playgroud)

java algorithm loops if-statement

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

提取列表中的列表

我在从列表中提取列表时遇到问题.

(defun delete (a l)
    (cond
       ((null l) nil)
       ((eq (car l) a) (delete a (cdr l)))
       (t (cons (car l) (delete a (cdr l))))))

它删除列表中的'a',但如果l由另一个列表组成,并且a在该内部列表中,则我的程序无法到达该内部列表内部.

lisp common-lisp

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