请问这个数组下标应该怎么获取呢?
#include <stdio.h>
#define N 5
void main()
{
int i,*ptr,num[N],search;
ptr = num;
printf("\n 请输入 5 个整数:");
for(i=0;i<N;i++)
{
scanf("%d", ptr);
}
printf(" 请输入要查找的数:");
scanf("%d", &search);
for(i=0;i<N;i++)
{
if(*(ptr+i) == search)
{
break;
}
}
printf("\n 该数所在的下标为:%d\n", i);
}
谢谢大家了
[最优解释]
你输出数组下标的方法是对的,
你最后输出的值和你预想的不一致,是因为你输入5个数的代码有问题
你把NUM数组中的5个数打出来看看就知道了
scanf("%d", ptr);
应该是
scanf("%d", ptr+i);
[其他解释]
for(i=0;i<N;i++)
{
scanf("%d", ptr); --ptr 换成 ptr + i;
}
[其他解释]
i 不就等于对应的数组下标
[其他解释]
for(i=0;i<N;i++)
{
scanf("%d", ptr++);
}
[其他解释]
可是出来的结果是5,也就是(i+1),i循环后的值,
里面的if没起作用,不知道为什么
[其他解释]
还是不行哎
[其他解释]
哦,yes,太棒了,谢谢你
[其他解释]
们大家
[其他解释]
// pointer_CSDN_100503.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
#define N 5
int _tmain(int argc, _TCHAR* argv[])
{
int i,*ptr,num[N],search;
ptr = num;
printf("\n 请输入 5 个整数:");
for(i=0;i<N;i++)
{
scanf("%d", ptr++);
}
printf(" 请输入要查找的数:");
scanf("%d", &search);
for(i=0;i<N;i++)
{
ptr = num;
if( *(ptr+i) == search)
{
printf("\n 该数所在的下标为:%d\n", i);
break;
}
}
return 0;
}
[其他解释]
有 一 个方法 就是这样的
int sum[10];
int getXiaoBiao;//获取下标变量
int cunXiaBiao(int i)//存下标的函数
{
reture i;
}
getXiaoBiao = cunXiaBiao(i);//这样就可以传出下标了
方法比较死 忘踩啦