我是一個大傻逼,輸出格式wa了一個小時,跪在了一個整數的前導‘0’。。。
解題思路:
1.用一個a[100000]來儲存每一個ID,將a數組初始化爲-1;
2.遍歷每一個輸入數據,如果每一個的第一個數m,不等於1,對應a數組的下標賦值爲1,說明他有朋友
3.再一次遍歷要查詢的數tmp,如果a[tmp]==-1說明他沒朋友,此時要將a[tmp]=-1,防止查詢重複的數,此過程還要用flag(初始化爲零)標記,最後flag==0,說明沒有一個人,沒朋友。
AC代碼:
#include <iostream>
#include <cstring>
using namespace std;
int a[100000]; //用一個a[100000]來儲存每一個ID
int main()
{
memset(a,-1,sizeof(a)); //將a數組初始化爲-1
int n;
cin>>n;
while (n--)
{
int m;
cin>>m;
for (int i = 0; i < m; ++i) {
int temp;
cin>>temp;
if (m!=1) // 遍歷每一個輸入數據,如果每一個的第一個數m,不等於1,對應a數組的下標賦值爲1,說明他有朋友
{
a[temp]=1;
}
}
}
int find,flag=0;
cin>>find;
while (find--)
{
int tmp;
cin>>tmp;
if (a[tmp]==-1)
{
a[tmp]=1; //再一次遍歷要查詢的數tmp,如果a[tmp]==-1說明他沒朋友,此時要將a[tmp]=-1
flag++; //防止查詢重複的數,此過程還要用flag(初始化爲零)標記,最後flag==0,說明沒有一個人,沒朋友
if (flag==1)
printf("%05d",tmp); // 這個就是爲了輸出前導0;
else
printf(" %05d",tmp);
}
}
if (flag==0)
cout<<"No one is handsome"<<endl;
else
cout<<endl;
return 0;
}
c語言中的前導0的輸出;
#include <stdio.h>
int main()
{
int a=10;
int b=1;
printf("%08d %08d",a,b);
return 0;
}
// 輸出:
D:\qifei\cmake-build-debug\qifei.exe
00000010 00000001
Process finished with exit code 0
c++輸出前導零;
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a=10;
int b=1;
cout<<setfill('0')<<setw(8)<<a<<endl;
cout<<setfill('0')<<setw(8)<<b<<endl;
return 0;
}
// 輸出
D:\qifei\cmake-build-debug\qifei.exe
00000010
00000001
Process finished with exit code 0