注册 登录
编程论坛 C语言论坛

假设整数数组 a 中,存在与整数 x 相同的数据,x 为用户输入,返回最后一个与x相同的元素的下标

opq2020 发布于 2020-04-21 14:27, 2651 次点击
这个数组是自己输入的吗,如果不是那怎么有数据,,刚学不是太会,最好能给出代码,谢谢各位大佬
3 回复
#2
吕孟伟2020-04-21 15:43
程序代码:
#include <stdio.h>
int main(void)
{
    int a[10] = {0, 1, 2, 3, 3, 5, 6, 7, 8, 3};
    int b = 0;

    printf("Please you input the number: ");
    scanf("%d", &b);
    int length = sizeof(a)/sizeof(int);
    for(size_t i = 0, j = 0; i != length; ++i){
        if(b == a[i]){
            ++j;
            printf("The number of %d times it appears in the array is %d\n", j, i+1);
        }
    }
    return 0;
}


[此贴子已经被作者于2020-4-21 15:46编辑过]

#3
lin51616782020-04-21 15:49
以下是引用吕孟伟在2020-4-21 15:43:49的发言:

#include <stdio.h>
int main(void)
{
    int a[10] = {0, 1, 2, 3, 3, 5, 6, 7, 8, 3};
    int b = 0;

    printf("Please you input the number: ");
    scanf("%d", &b);
    int length = sizeof(a)/sizeof(int);
    for(size_t i = 0, j = 0; i != length; ++i){
        if(b == a){
            ++j;
            printf("The number of %d times it appears in the array is %d\n", j, i+1);
        }
    }
    return 0;
}

你应该写错了
题目要下标 你加1 那肯定不对
要求的是 最后一次出现 不是每一次出现
#4
吕孟伟2020-04-21 16:34
回复 3楼 lin5161678
嗯嗯,确实错了,多谢。
程序代码:
#include <stdio.h>
int main(void)
{
    int a[10] = {0, 13, 2, 23, 3, 5, 6, 13, 3, 13};
    int x = 0;
    size_t i, j, k;
    printf("Please you input the number: ");
    scanf("%d", &x);
    int length = sizeof(a)/sizeof(int);
    for(i = 0, j = 0; i != length; ++i){
        if(x == a[i]){
           j = i;
           continue;
        }
    }
    printf("The index of the last element that is the same as x is %d\n", j);
    return 0;
}

大哥,看下这次对了吗?
1