Ки
Кирилл

С++ Пoчему цикл if просит назвать издательство, даже если num не равно 1? и почему запись "неверное число" не выводится?

include "stdafx.h"
#include "conio.h"
#include "string.h"
#include "stdio.h"
#include "locale.h"

struct spisok
{ char fam[20];
char nazv[30];
char izd [20];
int god;
};

struct poisk
{char klava[20];
};
int _tmain(int argc, _TCHAR* argv[])
{setlocale(LC_MIN,"Russian");
{
int n, m, num, i;
struct poisk vvod[100];
printf("Сколько различных книг вы хотите
ввести? \n");
scanf("%d",&n);

struct spisok knigi[100];
if(n>100) n=100;

for (m=0;m {printf("Введите фамилию автора: \n");
fflush(stdin);
gets(knigi[m].fam);
printf("Введите название книги: \n");
gets(knigi[m].nazv);
printf("Введите издательство: \n");
gets(knigi[m].izd);
printf("Введите год издания: \n");
scanf("%i", &knigi[m].god);
printf("\n");
}
fflush(stdin);

printf("Что вы хотите найти? Если книги
одного издательства, то введите 1, если книги одного автора - 2.\n");
scanf("%d", &num);

if (num=1)
{
fflush(stdin);
printf("Введите название
издательства: \n");
gets(vvod[0].klava);
for (m=0;m {if (stricmp(knigi[m].izd,vvod[0].klava))
printf("В этой строке не ок\n");
else
printf("А тут ок\n");
}}
else
printf("Неверное число\n");}

getch();
return
0;

}

*7
***брoдяга*** 777

if (num=1)
и
if (num ==1)
немножко разное))

в if (num=1) происходит присвоение единицы, и результат того что под иф равен результату выражения "num=1", т.е. "1", а раз не нуль, то истина.

а в if (num==1) происходит сравнение с единицей

АН
Алексей Неживёнков

Во-первых, цикл и if - вещи разные, пиши вопросы корректно. Во-вторых, если ты при проверке присваиваешь переменной num значение 1, ничем иным она оказаться не может. Тебе надо было написать if(num==1)

Похожие вопросы
Как в цикле if C++ обозначить нечетное число? как написать в цикле if нечетное число? if (!i%2) - так?
Дано целое число N(>0)используя 1 цикл найти сумму 1!+2!+,,+N! и вывести результат как вещественное число
В цикле выводится только первая запись
c++ if else Требуется умножать число на последующее в течении n циклов. 1*2*3*4*5*...*n
Написать программу на Pascal, которая выводит все четные числа от 1 до заданного числа N (введено пользователем).
Что написать чтобы цикл выводил несколько раз одно и то же число в браузер
javascript почему выводит undefined хоть и не равна ундефинед+
в С++ числа выводятся так 1.000000 2.000000 12.000000 а надо так 1 2 12 Где что исправить?
почему делфи так коряво выводит число:
сделайте пожалуйста программу чтоб выводила числа от 1 до 10 через цикл for