山东科技大学OJ集锦 联系客服

发布时间 : 星期日 文章山东科技大学OJ集锦更新完毕开始阅读57d674015a8102d276a22fe7

第二次作业

(2_1)问题 A: 哪一行比较长

时间限制: 1 Sec 内存限制: 2 MB 提交: 625 解决: 252 [提交][状态][讨论版] 题目描述

读取两行字符串,按每行的长度从长到短输出。 输入

输入为两行,每行不会超过26个字符。 输出

输出为两行,按每行的长度从长到短输出。

样例输入 abcdefghijk

abcdefghijklmnopqrstuvwxyz 样例输出

abcdefghijklmnopqrstuvwxyz abcdefghijk 提示

了解字符串的存储和操作,了解gets()和scanf(\读入字符串的不同之处

#include #include int main() {

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 main() {

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 main() {

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 main() {

int a,b;

while(scanf(\ printf(\ return 0; }

Append Code