我在这里读了一篇文章,但我想它很混乱,而且写得不好。所以我会在这里试一试,因为我仍然想找出答案。希望我不会收到那么多反对票。
事情是这样的,有一个励志有趣的引语:
if (sad() == true) {
sad().stop;
beAwesome();
}
Run Code Online (Sandbox Code Playgroud)
就我而言,这是 C 或 C++。我猜这两种语言都可以。所以我的主要问题是:这可以在 C 中工作吗?当然,假设变量存在。如果是这样,这也可以写成下面的代码吗?
if sad() {
sad().stop;
beAwesome();
}
Run Code Online (Sandbox Code Playgroud)
编辑:我已经得到了两个反对票......因为我是新来的,有人可以帮我理解我的错误吗?
我必须有两个具有不同条件的循环,但循环中的代码是相同的.
像这样:
for (xx; xxxx; xxx)
{
the Code
}
for (yy; yyyy; yyy)
{
the Code
}
Run Code Online (Sandbox Code Playgroud)
问题是代码太长了,我只想编写一次代码并执行这两个不同的循环.
我该如何解决?
为什么Python没有评论打印行,如果它被取消注释而另一行不存在?
# This is a guess the number game
import random
guessesTaken = 0
myName = input('Hi there! What is your name?')
number = random.randint(1, 20)
print('Well ' + myName + ' I am thinking of a number between 1 and 20')
while guessesTaken < 6:
guess = int(input('Try and guess what it is!')) # There are 4 spaces in front of print.
# guess = int(input ())
guessesTaken = guessesTaken + 1
if guess < number:
print('Your guess is …Run Code Online (Sandbox Code Playgroud) 当我编译时,我不断收到此错误.
mario.c:4:1: error: expected identifier or '('
Run Code Online (Sandbox Code Playgroud)
我已经尝试过更换东西然后修改它们并改变其他东西然后修复它们但似乎没有任何帮助.我是新来的.有人可以帮忙吗?
#include <stdio.h>
#include <cs50.h>
int main(void);
{
int n;
do
{
n = GetInt();
}
while (n=<0);
}
Run Code Online (Sandbox Code Playgroud) 我对C很新,有时我会遇到奇怪的符号,特别是与指针有关.
一个很短的例子:
....
real *ptr;
real delta_force;
for(i<particles;...)
{
...some calculations
ptr=&FORCE(i,...); //FORCE is a macro returning the current force on a particle
*(++ptr) += delta_force;
...
}
...
Run Code Online (Sandbox Code Playgroud)
我怎么解释*(++ptr)?
例如,当我们声明任何全局变量时
int x;
Run Code Online (Sandbox Code Playgroud)
它相当于
extern int x;
Run Code Online (Sandbox Code Playgroud)
现在默认情况下,编译器将全局变量初始化为0,这意味着它们被分配了内存.但如果我只是写
extern int x;
Run Code Online (Sandbox Code Playgroud)
那么这只会声明变量,而不会分配任何内存.所以,我的查询是,如果我之前写externint x或者我不写它,在全局变量的情况下,编译器如何区别对待它们?在我简单写入的情况下int x,它分配内存并同时将extern置于之前int x,而在我写入的情况下extern int x,它只声明变量而没有分配内存.请说明编译器如何以两种方式运行.
unsigned mystery(int x){
unsigned i = 0;
while(x){
x = x&(x-1);
i++;
}
return i;
}
Run Code Online (Sandbox Code Playgroud)
我认为这会返回'2'的幂,直到我们给出的数字.
有人可以帮我理解' +='运算符在特定情况下的含义.该剧本说:
$receipts{$weather} += $receipt;
$days{$weather}++;
Run Code Online (Sandbox Code Playgroud) 为什么这些程序有效,为什么我没有出现"分号丢失"错误?有了这个问题,我想问一下,当我可以跳过分号.据我所知,分号是句子终止符.在我们使用逗号而不是分号的情况下编写这些类型的语句是否正确.在program1中有一个否定然后打印然后getchar()在一行中没有分号和使用逗号.类似地,在程序2中使用了否定赋值,printf和getchar().我们可以使用逗号写多少行而不使用分号.
程序1:
#include <stdio.h>
int main()
{
int i = 0xAA;
~i, printf("%X\n", i),getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
计划2:
#include <stdio.h>
int main()
{
int i = 0xAA;
i=~i, printf("%X\n", i),getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我在这段代码中收到SIGSEGV错误,我无法弄明白.所以请有人帮助我.我无法理解如果我通过malloc函数将内存分配给数组,我必须以零索引或1启动它.
#include<iostream>
#include<stdio.h>
using namespace std;
#include<malloc.h>
long long int gold_coins(long long int[],long long int);
int main()
{
long long int n,i,d;
long long int* m;
cin>>n;
while(n!=EOF)
{
m = (long long int*) malloc(n+1);
for(i=0;i<=n;i++)
m[i]=i;
d=gold_coins(m,n);
cout<<d<<endl;
cin>>n;
}
return(0);
}
long long int gold_coins(long long int m[],long long int n)
{
if(n<4)
return m[n];
else
{
long long int q=gold_coins(m,n/2)+gold_coins(m,n/3)+gold_coins(m,n/4);
if(q>m[n])
m[n]=q;
return(m[n]);
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.