为什么我在C 代码的Stdout上得到响应
Why am I getting a response on stdout for my C++ code?
我正在尝试求解hackerrank查找数字问题并收到涉及数组的问题的运行时错误。我尝试释放数组内存空间,但仍然相同。我要做什么更改?
我尝试通过使用malloc函数来声明阵列。
#include <bits/stdc++.h>
using namespace std;
int main() {
int testCase,rem,count[]={0},n;
scanf("%d", &testCase);
int *numbers = (int*) malloc(testCase*sizeof(int));
for(int i=0; i<testCase; i++)
scanf("%d",numbers + i);
for(int i=0; i<testCase; i++) {
n = *(numbers + i);
while(n!=0) {
int q = n % 10; //get the units place
rem = *(numbers + i) % q; //find remainder
if(rem == 0)
count[i]++;
n/=10;
}
}
free(numbers);
for(int i=0; i<testCase; i++)
printf("%d", count[i]);
free(count);
return 0;
}
您可能会从注释中注意到,您的 count
数组隐含地设置为仅包含1个元素。此外,这不是唯一导致您的运行时间错误的问题。
如果您使用操作员模量(%(,则必须确保您不会与零分开,否则您将获得浮点异常-rem = *(numbers + i) % q;
我也建议您使用C 或C
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int testCase,rem,n;
scanf("%d", &testCase);
int *numbers = (int*) malloc(testCase*sizeof(int));
int *count= (int*) malloc(testCase*sizeof(int));
for(int i=0; i<testCase; i++) {
scanf("%d",numbers + i);
count[i] = 0;
}
for(int i=0; i<testCase; i++) {
n = *(numbers + i);
while(n!=0) {
int q = n % 10; //get the units place
if (q == 0) {
n /= 10;
continue;
}
rem = *(numbers + i) % q; //find remainder
if(rem == 0)
count[i]++;
n/=10;
}
}
free(numbers);
for(int i=0; i<testCase; i++)
printf("%d", count[i]);
free(count);
return 0;
}
//我尚未校正代码以打印适当的计数。我刚刚建议您为什么会遇到运行时错误
使用malloc/realloc
分配内存时应使用免费记忆尚未分配为动态计数,因此请勿使用免费(Count(。
也不需要在第一行中使用该标头。
下面的PFB代码#include <stdio.h>
int main() {
int testCase,rem,count[]={0},n;
scanf("%d", &testCase);
int *numbers = (int*) malloc(testCase*sizeof(int));
for(int i=0; i<testCase; i++)
scanf("%d",(numbers+i));
for(int i=0; i<testCase; i++)
printf("%dn",numbers[i]);
for(int i=0; i<testCase; i++) {
n = *(numbers + i);
while(n!=0) {
int q = n % 10; //get the units place
rem = *(numbers + i) % q; //find remainder
if(rem == 0)
count[i]++;
n/=10;
}
}
free(numbers);
for(int i=0; i<testCase; i++)
printf("%d", count[i]);
return 0;
}
相关文章:
- 如何将stdout重定向到stderr
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- C++ 信号和插槽不工作:插槽不响应事件
- NodeJs 服务器充斥着 UDP 广播,不发送响应
- C++关于ENUM的问题。我得到的响应比枚举列表大
- 应用程序在打开的简历中捕获视频后没有响应
- 使用 cpprest (Casablanca) 返回 PDF 响应
- 为什么当通过 TCP 发送的消息速率增加时,请求-响应消息对的延迟会降低?
- 如何使用从处理程序调度的最终回调将响应异步返回给调用方on_read?
- 获取加密的正文响应WinHttp HTTPS
- QtConcurrent - 在发布到 UI 线程的数千个结果中保持 GUI 响应
- 同步读取多个 TCP 响应
- HTTP 响应格式不正确?
- C++|以一种很好的方式将树(不一定是二进制的)打印到stdout
- 如何使用软化工具包从 OPC UA 服务器异步读取操作回调中的数据值响应中获取 NodeId 详细信息
- HTTP帖子,无需等待响应
- 问题导致程序停止响应,并且姓氏未正确打印
- 为什么我在C 代码的Stdout上得到响应
- 以下代码不会在Stdout上给出任何响应
- 在从上游读取响应标头时,c++和fastcgi-upstream提前关闭了fastcgi stdout