в c заявленная матрица. и изменение матрицы со словом - PullRequest
0 голосов
/ 04 мая 2020
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a,d; 
char b;
float c;
char voca[100];
scanf("%d %c %f %d",&a,&b,&c,&d);
if (b = 'F')
    voca= "Food";
else if (b = 'S')
    voca= "Service";
else if (b = 'R')
    voca= "W/R Sales";
else
    voca= "Lodging";
printf("No Type      Ratio(\%) Enterprises\n%d  %s    %.1f\%      %7d", a, voca,c,d);
return 0;
}

Я хочу сначала объявить матрицу и изменить ее в зависимости от того, что есть b. но я не могу это изменить.

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Я хотел бы добавить, что для избежания таких проблем необходимо использовать «хорошую практику». А именно, чтобы поставить «константу» в левой части сравнения, например:

#include <string.h>
...
    if ('F' == b)
        strcpy(voca, "Food");
    else if ('S' == b)
        strcpy(voca,  "Service");
...

Поскольку невозможно изменить константу, компилятор выдаст ошибку.

0 голосов
/ 04 мая 2020

Оператор сравнения: ==, а не =

Чтобы изменить содержание voca, вам необходимо использовать strcpy или memcpy.

#include <string.h>
...
    if (b == 'F')
        strcpy(voca, "Food");
    else if (b == 'S')
        strcpy(voca,  "Service");
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...