- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我应该制作两个程序:
这两个程序都可以正确地独立工作,当我尝试对它们进行流水线处理时它会停止工作 (./generate 1000 50 | ./find 817
)。
用法:
./find #
如果找到数字:输出 true,否则输出 false
./generate [seed]
生成种子。
当我尝试组合这两个命令时它不起作用,我会看到生成命令生成了一个数字,并为该数字写了 ./find
,但它没有结果是真的。
find.c
的源代码
/**
* Prompts user for as many as MAX values until EOF is reached,
* then proceeds to search that "haystack" of values for given needle.
*
* Usage: ./find needle
*
* where needle is the value to find in a haystack of values
*/
#include <cs50.h>
#include <stdio.h>
#include <stdlib.h>
#include "helpers.h"
// maximum amount of hay
const int MAX = 65536;
int main(int argc, string argv[])
{
// ensure proper usage
if (argc != 2)
{
printf("Usage: ./find needle\n");
return -1;
}
// remember needle
int needle = atoi(argv[1]);
// fill haystack
int size;
int haystack[MAX];
for (size = 0; size < MAX; size++)
{
// wait for hay until EOF
printf("\nhaystack[%i] = ", size);
int straw = get_int();
if (straw == INT_MAX)
{
break;
}
// add hay to stack
haystack[size] = straw;
}
printf("\n");
// sort the haystack
sort(haystack, size);
// try to find needle in haystack
if (search(needle, haystack, size))
{
printf("\nFound needle in haystack!\n\n");
return 0;
}
else
{
printf("\nDidn't find needle in haystack.\n\n");
return 1;
}
}
更多find.c
源码
/**
* helpers.c
*
* Helper functions for Problem Set 3.
*/
#include <cs50.h>
#include <stdio.h>
#include <stdlib.h>
#include "helpers.h"
/**
* Returns true if value is in array of n values, else false.
*/
bool search(int value, int values[], int n)
{
// TODO: implement a searching algorithm
if(values[4] < 0) {
return false;
}
if(value < 4) {
printf("Valid usage: ./search array value\n");
return 52;
}
//
for( long long i = 0 ; i < n ; i++ )
{
if (value == values[i])
{
return true;
}
printf("%i", values[i]);
}
return false;
}
/**
* Sorts array of n values.
*/
void sort(int values[], int n)
{
int smallest = values[0];
int smallestSpot = 0;
for (long long i = 0; i < n ; i++)
{
for(long long j = i; j < n - i ; j++) //find the smallest int in array
{
if(values[j] < smallest)
{
smallestSpot = j;
smallest = values[j];
}
values[smallestSpot] = values[i];
values[i] = smallest;
}
}
return;
}
./生成源代码
/**
* generate.c
*
* Generates pseudo random numbers in [0,MAX), one per line.
*
* Usage: generate n [s]
*
* where n is number of pseudo random numbers to print
* and s is an optional seed
*/
#define _XOPEN_SOURCE
#include <cs50.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// upper limit on range of integers that can be generated
#define LIMIT 65536
int main(int argc, string argv[])
{
// Make sure user gave enough inputs
if (argc != 2 && argc != 3)
{
printf("Usage: ./generate n [s]\n");
return 1;
}
// convert the string that is inputted to an integer
int n = atoi(argv[1]);
// if user gives a seed, use that seed
if (argc == 3)
{
srand48((long) atoi(argv[2]));
}
else
{
srand48((long) time(NULL));
}
// create this amount of random inputs
for (int i = 0; i < n; i++)
{
printf("%i\n", (int) (drand48() * LIMIT));
}
// success
return 0;
}
最佳答案
您的搜索程序太复杂:对输入进行排序是没有用的,为此目的尝试读取所有输入实际上是不正确的:
修改后的版本:
#include <cs50.h>
#include <stdio.h>
#include <stdlib.h>
#include "helpers.h"
// maximum amount of hay
const int MAX = 65536;
int main(int argc, char *argv[]) {
// ensure proper usage
if (argc != 2) {
printf("Usage: ./find needle\n");
return 2;
}
// convert needle
int needle = atoi(argv[1]);
int found = 0;
// parse input
for (int count = 0; count < MAX; count++) {
// wait for hay until EOF
int straw = get_int();
if (straw == INT_MAX) {
break;
}
if (straw == needle) {
found = 1;
break;
}
}
// report status
if (found) {
printf("\nFound needle in haystack!\n\n");
return 0;
} else {
printf("\nDidn't find needle in haystack.\n\n");
return 1;
}
}
关于将两个程序与管道结合起来是行不通的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44979227/
我正在尝试实现这个简单的幻灯片:http://codepen.io/rafaelcastrocouto/pen/doZNMo 但我没有成功,我不知道问题是什么,唯一显示的是幻灯片的最后一张图片,我添加
我对 Promise 还很陌生,我认为我没有正确理解它,因为我在代码中尝试它但没有成功。 我在 NodeJS 上有一个服务器,使用 Express 库和 express-promise var exp
为什么两个盒子都在右边,而不是居中对齐? fiddle :http://jsfiddle.net/gh76q/1/ 我尝试将方框 2 的位置更改为相对位置,它可以解决问题,但当鼠标悬停在方框 1 上时
这个问题在这里已经有了答案: scanf() leaves the newline character in the buffer (7 个答案) 关闭 4 年前。 如果我尝试这样的事情: int
这个问题在这里已经有了答案: scanf() leaves the newline character in the buffer (7 个答案) 关闭 4 年前。 如果我尝试这样的事情: int
我有一张我的小 table ,它似乎不起作用。 CSS 会告诉所有我想要的高度和宽度。我这样做的方式有误吗?或者我错过了什么? 为什么不是所有的边界都对齐? 表格、html 和 CSS 可以在这个 j
我正在尝试使用localStorage制作一个简单的程序。我创建了一个按钮来重置 localStorage 中的所有数据。不幸的是,它不起作用,我不知道为什么。 这是我的代码: var sl
我有一个 Div,我想做的是,当您将鼠标悬停在 div 1 上时,它会更改 div 2。 所以我可以通过 .div1:hover .div2 的 CSS 来做到这一点,这意味着当我将鼠标悬停在 1 上
出于某种原因,比较逻辑无法正常工作……它不会比较两个 NSDecimalNumber 对象。有时有效,有时无效。真的很奇怪。 if 语句适用于某些编译,有时则不然。这是正确的做法吗? 数据来自一个 j
我在 iOS 上使用 Phonegap 2.1.0。在我的 main.html 文件中,我使用 jQuery 加载了一些 html。 但是,我正在加载的其中一个 html 文件有自己的 Javascr
行不通,而嵌套
我一般不会嵌套像这样: The following: one two 我将使用 像那样嵌套反而。但是今天我用了但似乎 Emacs 和 Google Chrome 都会考虑外部 一看
我有 3 个框 (div-s)。 main-box里面有两个盒子。第一个 (Box1) 向右浮动,另一个 (Box2) 向左浮动。 两个框的高度都设置为 100%,所以当其中一个拉伸(stretch)
我是一名优秀的程序员,十分优秀!