请问各位大佬为何19到21行的代码中若a[i]!=0则全都输出为1

 

>a[i]!=0则全都输出为1

 

你要表示”不等于“ 这个操作, 那要写 "!=",  感叹号和等号之间没有空格。 如果有空格, 就是另外一个意思了, 

a =  !b   表示 把 0 的 非值 (就是 1)赋给 a。  

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int i, j, a[101];
	for (i = 1;i <= 100;i++)
	{
		a[i] = i;
	}
		a[1] = 0;
		for (i = 2;i <= 100;i++)
		{
			for (j = i + 1;j <= 100;j++)
				if (a[i] != 0 && a[j] != 0)
					if (a[j] % a[i] == 0)
						a[j] = 0;
		}
	for (i = 1;i <= 100;i++)
		if (a[i] = !0)
		cout<< a[i]<< setw(2);
	cout << endl;
	return 0;
	system("pause");
}

代码如上