c - 使用指针查找重复项
问题描述
#include <stdio.h>
#include<stdlib.h>
int main()
{
int *num=malloc(sizeof(int)*10);
int n,dup=0;
printf("Enter number of elements");
scanf("%d",&n);
printf("Enter numbers");
for(int i=0;i<n;i++)
{
scanf("%d",num+i);
}
for(int i=0;i<n;i++)
{
for(int j=1;j<n;j++)
{
if(*(num+i)==*(num+j))
{
dup++;
}
}
}
printf("%d",dup);
free(num);
return 0;
}
我正在尝试使用指针查找元素重复的次数。但我没有得到正确的输出。这段代码有什么问题?编辑:对于输入 1、2、3,我得到的输出为 2。
解决方案
内循环错误且重复对
for(int j = 1; j < n; j++)
将其更改为
for(int j = i + 1; j < n; j++)
您还应该将malloc
线进一步向下移动并基于输入;
int *num = malloc(sizeof(int) * n);
推荐阅读
- javascript - 如何制作一个在插入一些单词后重定向到网页的按钮?
- amazon-web-services - AWS CloudFront 到 S3 后期支持?
- android - 编辑资源文件时Android Studio换行
- reactjs - npm start 在启动 react 项目时抛出错误
- android - 指定为非空的参数为空:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数convertView
- c - Contiki Cooja 错误“正在执行 MSP430X 指令,但 MCU 不是 MSP430X”
- javascript - 如何避免我的用户在初始加载时下载项目的所有 js 和 css 外部文件,而是按需加载它们?
- java - mybatis的resolveGetterConflicts()方法中如何解释这段代码?为什么布尔值与其他类不同?
- github - GitHub 按内容查找文件
- oracle - 如何在 Oracle 中创建数据挖掘模型?