我想得到输入字符串中1s的数目(作为一个字符),但它不起作用。请告诉我原因。
#include"stdio.h"
#include"string.h"
int main()
{
int n,l,count1=0,i;
scanf("%d",&n);
char a[n];
gets(a);
for(i=0;i<n;i++)
{
if(a[i]=='1')
count1++;
}
printf("%d",count1);
puts(a);
return 0;
}
最佳答案
您的代码将跳过gets(),因为您在前面输入了新行字符,新行字符是gets()的分隔符。尽管在scanf之后使用getchar()应该可以,但我建议您使用
#include"stdio.h"
#include"string.h"
#include <iostream>
int main()
{
int n,l,count1=0,i;
scanf("%d",&n);
char a[n];
std::cin>>a;
for(i=0;i<n;i++)
{
if(a[i]=='1')
count1++;
}
printf("%d",count1);
std::cout<<a;
return 0;
}