c - 错误 : Expected expression before char

标签 c pointers compiler-errors syntax-error

我是 C 语言的新手,我很难理解语法。我在编译器中不断收到 [error] expected expression before char,我想知道是否有人可以向我解释一下。这是我的代码:

#include <stdio.h>

void convert_weight(int x, char a[], int* y, char b[])
{
int i;
for(i=0; char a[i] != '\0';i++)

    if(char a[i] == 'l') {

        *y/2.2;
    }   
    else {
        if(char a[i] == 'k')
        {

        *y *2.2;
    }
    }


}

int main() {
  char newline, another = 'y';
  int weight1, weight2;
char units1[4], units2[4]; // length 4 because of '\0'
while (another == 'y') {
    printf("Enter a weight and the units of the weight (lbs or kgs)\n");
    scanf("%d %s", &weight1, units1);
    convert_weight(weight1, units1, &weight2, units2);
    printf("%d %s = %d %s\nAnother (y or n)\n", weight1, units1, weight2, units2); 
    scanf("%c%c", &newline, &another)    ;
  }
  return 0;
}

最佳答案

你不需要重新声明一个:

for(i=0; char a[i] != '\0';i++)

删除那些行上的char:

void convert_weight(int x, char a[], int* y, char b[])
{
   int i;
   for(i=0; a[i] != '\0';i++)
   {
       if(a[i] == 'l') {
          *y /= 2.2;
       }   
       else if(a[i] == 'k') {
          *y *= 2.2;
       }
   }
}

关于c - 错误 : Expected expression before char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23031075/

相关文章:

c - 以定时阻塞模式读取

c - 使用 Read 系统调用时,While 循环不会退出

c - 为什么我在 sbrk 之后会遇到无效内存?

c++ - Eclipse 给出有关 opencv 的 "weird"错误

scala - 这可能是 Scala 编译器错误吗?

c - 如何使用yarpgen随机C程序生成器?

你能把一个没有方括号或下标的数组加到一个整数上吗?结果是什么?

c++ - 为什么在离开属于该类的私有(private)函数的范围时调用我的类的析构函数?

c++ - 删除指针时出现段错误

c++ - Visual Studio 中的 .hint 文件是什么?