输入问题:
一,输入不说明有多少个Input Block,以EOF为结束标志。
#include <stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a, &b) != EOF)
printf("%d\n",a+b);
}
说明
1.Scanf函数返回值就是读出的变量个数,如:scanf(“%d %d”, &a, &b );
如果a和b都被成功读入整数,那么scanf的返回值就是2;
如果只有a被成功读入整数,返回值为1;
如果a和b都未被成功读入整数,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF
如果a和b都被成功读入整数,那么scanf的返回值就是2;
如果只有a被成功读入整数,返回值为1;
如果a和b都未被成功读入整数,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF
2.EOF是一个预定义的常量,等于-1。
二,输入一开始就会说有N个Input Block,下面接着是N个Input Block。
#include <stdio.h>
int main()
{
int n,i,a,b;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d %d",&a, &b);
printf("%d\n",a+b);
} }
三, 输入不说明有多少个Input Block,但以某个特殊输入为结束标志。
while( cin >> n && n != 0 )
{
....
}
四,输入是一整行的字符串的
C语法 char buf[20];gets(buf);
C++ 用string buf保存,getline(cin,buf);
用char buf[255]保存,cin.getline(buf,255);
scanf(“%s%s”,str1,str2),在多个字符串之间用一个或多个空格分隔;
若使用gets函数,应为gets(str1); gets(str2); 字符串之间用回车符作分隔。
通常情况下,接受短字符用scanf函数,接受长字符用gets函数。
而getchar函数每次只接受一个字符,经常c=getchar()这样来使用。
getline是一个函数,它可以接受用户的输入的字符,直到已达指定个数,或者用户输入了特定的字符。它的函数声明形式(函数原型)如下:
istream&getline(charline[], intsize, char endchar= '\n');
不用管它的返回类型,来关心它的三个参数:
char line[]:就是一个字符数组,用户输入的内容将存入在该数组内。
int size : 最多接受几个字符?用户超过size的输入都将不被接受。
char endchar :当用户输入endchar指定的字符时,自动结束。默认是回车符。
输出问题:
一,一个Input Block对应一个Output Block,Output Block之间空行。
#include <stdio.h>
int main()
{
int icase,n,i,j,a,sum;
scanf("%d",&icase);
for(i=0;i<icase;i++)
{
sum=0;
scanf("%d",&n);
for(j=0;j<n;j++)
{
scanf("%d",&a);
sum+=a;
}
if(i<icase-1)
printf("%d\n\n",sum);
else
printf("%d\n",sum);
}
}
for (k=0;k<count;k++)
{
while (…)
{
printf(" %d\n",result);
}
if (k!=count-1)
printf("\n");
}