发布时间 : 星期日 文章山东科技大学OJ集锦更新完毕开始阅读57d674015a8102d276a22fe7
第二次作业
(2_1)问题 A: 哪一行比较长
时间限制: 1 Sec 内存限制: 2 MB 提交: 625 解决: 252 [提交][状态][讨论版] 题目描述
读取两行字符串,按每行的长度从长到短输出。 输入
输入为两行,每行不会超过26个字符。 输出
输出为两行,按每行的长度从长到短输出。
样例输入 abcdefghijk
abcdefghijklmnopqrstuvwxyz 样例输出
abcdefghijklmnopqrstuvwxyz abcdefghijk 提示
了解字符串的存储和操作,了解gets()和scanf(\读入字符串的不同之处
#include
char s1[27],s2[27]; int a,b; gets(s1); gets(s2); a=strlen(s1); b=strlen(s2); if (a>=b) { puts(s1); puts(s2); }
else { puts(s2); puts(s1); }
return 0; }
(2_2 )> 题目描述
从键盘上输入0~100之间的三个数,按从小到大的顺序输出。 输入
输入只有一行,为三个整数。 输出
按从小到大输出这三个数。
样例输入 15 10 20 样例输出 10 15 20 提示
用if语句判断各种情况可以解决这个问题。
#include
int a,b,c;
scanf(\ if (a>=b&&b>=c) printf(\ else if (a>=c&&c>=b) printf(\ else if (b>=c&&c>=a) printf(\ else if (b>=a&&a>=c) printf(\ else if (c>=b&&b>=a)
printf(\ else printf(\ return 0; }
Append Code
(2_3) 题目描述
输出1~k之间是m的倍数或n的倍数、但不是m和n的公倍数的数,其中1<=m,n 输入三个整数,依次为k、m、 n。 输出 从小到大输出符合题意的所有整数,两数之间用一个空格分开。 样例输入 15 2 3 样例输出 2 3 4 8 9 10 14 15 提示 难点在于输出格式的控制:空格在数的中间,学会用循环时边界情况的特殊处理。 #include int k,m,n,a,b,i,c,d; scanf(\ if (m>n) c=m,d=n; else c=n,d=m; printf(\ for (i=d+1;i<=k;i++) { a=i%m; b=i%n; if (a==0&&b!=0||a!=0&&b==0) printf(\ } printf(\ return 0; } (2_4)Description 计算a+b,0<=a,b<1000。 Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。 Output 每行输出一个a+b的值,顺序与输入对应。 Sample Input 1 2 10 20 Sample Output 3 30 HINT OJ系统上测试输入结束符为EOF(End Of File),其值为-1。用scanf()把文件所有内容读完后,会读到EOF,所以可以用来判断输入是否完成,测试时可以用Ctrl+Z产生EOF。本题解法参看FAQ。 #include int a,b; while(scanf(\ printf(\ return 0; } Append Code