当我们输入一串字符或者数字时,需要一种标志作为输入结束的标志,所以我总结了以下几种:
1.输入一串字符串以回车键作为输入结束的标志
char ch;
while(((ch=getchar())!='n')
{
}
例1:输入一行字符,分别统计出其中英文字母、空格、数字、和其它字符的个数
#include
int main()
{
char c;
int letters=0,space=0,digit=0,other=0; //赋值
while((c=getchar())!='\n') //输入字符串,按回车键结束
{
if(c>='A'&&c<='Z')
letters++;
else if(c>='a'&&c<='z')
letters++;
else if(c>='0'&&c<='9')
digit++;
else if(c==' ')
space++;
else
other++;
}
printf("letters=%d\n",letters);
printf("space=%d\n",space);
printf("digit=%d\n",digit);
printf("other=%d\n",other);
return 0;
}
2.输入一串数字,以CTRL+z作为输入结束的标志
方式一:
int n;
while(scanf("%d",&n)!=EOF)
{
}
方式二:
int n;
while(~scanf("%d",&n))
{}
例2:输入一组整数,以CTRL+z作为结束标志,求出这组整数的和。
#include
int main()
{
int a,sum,n;
scanf("%d",&n);
for(int i=0;i { sum=0; while(scanf("%d",&a)!=EOF) //while(~scanf("%d",&a)) //先回车在按CTRL+Z键,输入结束 { sum+=a; } printf("%d",sum); } } 3.以某个数字作为输入结束的标志(这里用0代替) int n; while(scanf("%d",&n),n!=0) {} 例3:输入一组整数,以数字0作为结束标志,求出这组整数的和。 #include int main() { int n,sum=0; while(scanf("%d",&n),n!=0) //输入0,按回车键输入结束 { sum+=n; } printf("%d",sum); return 0; } (4)除了这几种之外还有输入多组数据的情况: int n; scanf("%d",&n); for(i=0;i { while(~scanf("%d",&n)) //输入每组数据 { } } 例4:n个数求和(多实例测试): 输入第一行是一个整数T,表示有T组测试实例; 每组输入包括两行: 第一行一个数n表示接下来会有n个整数; 第二行空格隔开的n个数。 #include int main() { int T,n,x,sum[100]; printf("多实例测试之n个数求和\n"); printf("请输入实例测试组数"); scanf("%d",&T); for(int i=1;i<=T;i++) { sum[i]=0; printf("第%d组\n",i); printf("请输入加数的个数:"); scanf("%d",&n); printf("请输入%d个数:\n",n); for(int j=0;j { scanf("%d",&x); sum[i]+=x; } printf("****************************\n"); } for(int i=1;i<=T;i++) printf("第%d组的和为%d\n",i,sum[i]); return 0; } 以上就是我对C语言中几种输入方式的总结,我是编程小白,各位大佬不喜莫怪,欢迎各位编程大佬补充。