bool a[10]全部初始化为true
我只想改变a[1]的值
scanf("%d",&a[1]);
然后输入0
发现从a[1]~a[4]的值都变成了0
但是用cin >> a[1]就不会出现这种情况
很奇怪
测试代码如下
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
bool a[10];
int main()
{
memset(a,1,sizeof(a));
printf("初始状态a[1]~a[9]=");
for(int i=1;i<=9;i++) printf("%d",a[i]);
printf("\n输入0:");
//cin >> a[1];
scanf("%d",&a[1]);
printf("状态a[1]~a[9]=");
for(int i=1;i<=9;i++) printf("%d",a[i]);
return 0;
}
编译器 dev-cpp 5.11 gcc4.9.2
难不成是编译器的问题?
我只想改变a[1]的值
scanf("%d",&a[1]);
然后输入0
发现从a[1]~a[4]的值都变成了0
但是用cin >> a[1]就不会出现这种情况
很奇怪
测试代码如下
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
bool a[10];
int main()
{
memset(a,1,sizeof(a));
printf("初始状态a[1]~a[9]=");
for(int i=1;i<=9;i++) printf("%d",a[i]);
printf("\n输入0:");
//cin >> a[1];
scanf("%d",&a[1]);
printf("状态a[1]~a[9]=");
for(int i=1;i<=9;i++) printf("%d",a[i]);
return 0;
}
编译器 dev-cpp 5.11 gcc4.9.2
难不成是编译器的问题?