您好,我正在编写一个程序,它需要使用一个函数来遍历一个数组,并选择具有大写字母M的索引号,然后返回该索引号,并且只在第一次出现大写字母M时返回。如果找不到大写字母M,则返回值-1。这是我目前所拥有的(我可能会在左外野与这个,因为我是新的职能)。

#include <stdio.h>

int findM (char string[], int numVals){
int i = 0;
int indexM;

for (i = 0; i < numVals; ++i){
if (string[i] == 'M'){
    indexM = string[i];
    break;
}
    else {
    indexM = -1;
   }
  }
    return indexM;
}

int main(void) {
   char userString [15] = "M as in Mancy";
   printf("%d",findM(userString, 15));
    return 0;
}

在这个例子中,预期的结果是0,因为这个字符串的第一个元素是大写的M,但是,编译和运行时,我的结果是77。谢谢你们的帮助!

最佳答案

之所以这样做,是因为要在index M变量中插入M的ASCI值,但是应该保留该字符M的索引,对吧?因此,请在findM函数中执行以下操作:

for (i = 0; i < numVals; ++i){
if (string[i] == 'M'){
    indexM = i;
    break;
}
    else {
    indexM = -1;
   }
  }
    return indexM;
}

关于c - C语言的基本功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40211496/

10-09 09:00