(今天进行对一些实例进行编程,来自牛客网初学者入门训练)
1. 输入描述:多组输入,每一行输入大写字母。
输出描述:针对每组输入输出对应的小写字母。
备注:多组输入过程中要注意“回车”也是字母,所以要“吸收”(getchar())掉该字母。
#include
int main()
{
char ch=0;
while(scanf("%cn",&ch)!=EOF)
{
printf("%cn",ch+32);
getchar()
}
return 0;
}
2. 输入描述:多组输入,每一行输入整数n(0 <= n < 31)。
输出描述:针对每组输入输出对应的2的n次方的结果。
#include
int main()
{
int n=0;
while(scanf("%dn",&n)!=EOF)
{
printf("%dn",1< } return 0; } 3. 输入描述:多组输入,每组输入仅一行,包括n,h和m(均为整数)。输入数据保证m <= n * h。(KiKi每h分钟能喝光一盒酸奶,并且KiKi在喝光一盒酸奶之前不会喝另一个,那么经过m分 钟后还有多少盒未打开的酸奶?) 输出描述:针对每组输入,输出也仅一行,剩下的未打开的酸奶盒数。 #include int main() { int n=0; int m=0; int h=0; while(scanf("%d %d %dn",&n,&m,&h)!=EOF) { if (m%h==0) printf("%dn",n-m/h); else printf("%dn",n-m/h-1); } return 0; } 4. 输入描述:一行,连续输入5个整数(范围0~100),用空格分隔。 输出描述:一行,输出5个数的平均数(保留一位小数)。 #include int main() { int a=0; int b=0; int c=0; int d=0; int e=0; scanf("%d %d %d %d %dn",&a,&b,&c,&d,&e); printf("%.1fn",(a+b+c+d+e)/5.0); return 0; } 5. 输入描述:一行,一个十六进制数a,和一个八进制数b,中间间隔一个空格。 输出描述:一行,a+b的十进制结果。 #include int main() { int a=0; int b=0; scanf("%x %on",&a,&b); printf("%dn",a+b); return 0; } 6. 输入描述:多组输入,每行输入包括一个字符。 输出描述:针对每行输入,输出该字符是字母(YES)或不是(NO)。 #include int main() { char ch=0; while(scanf("%cn",&ch)!=EOF) { if ((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')) printf("YESn") else printf("NOn") } return 0; } 总结:1. 多组输入:while(scanf(%d,&n)!=EOF) 2. 大小写转换:用ASCii码表对照 应+32 3. 吸收字母:用getchar() 4. 左移操作符:b=a< 右移操作符:b=a>>n 等价于 b=a/2^n 5. = 与 == 的区别:=是赋值的意思 ==是等一操作符,判断两边是否相等。



