学习C++从娃娃抓起!记录下CSP-J备考学习过程中的题目,记录每一个瞬间。
附上汇总贴:历年CSP-J初赛真题解析 | 汇总_热爱编程的通信人的博客-CSDN博客
#include <iostream>
using namespace std;
int main()
{
int max, min, sum, count = 0;
int tmp;
cin >> tmp;
if (tmp==0)
return 0;
max = min = sum = tmp;
count++;
while (tmp!=0)
{
cin >> tmp;
if (tmp!=0)
{
sum += tmp;
count++;
if (tmp>max)
max=tmp;
if (tmp<min)
min=tmp;
}
}
cout << max << ", " << min << ", " << sum/count << endl;
return 0;
}
第23题
输入:1 2 3 4 5 6 0 7
输出:( )
【答案】:6, 1, 3
【解析】
第15行表示读到0就结束,所以最后一个输入7没有读进来。
运行到最后max=6,min=1,sum=21,count=6。另外需要注意格式,","后面有一个空格
#include <iostream>
using namespace std;
int main()
{
int i=100, x=0, y=0;
while (i>0)
{
i--;
x = i%8;
if (x==1)
y++;
}
cout << y << endl;
return 0;
}
第24题
输出:( )
【答案】:13
【解析】
题目是求1~99之间有多少个数模8余1,一共13个。
#include <iostream>
using namespace std;
int main() {
int a[6] = {1,2,3,4,5,6};
int pi=0;
int pj=5;
int t, i;
while (pi<pj)
{
t = a[pi];
a[pi] = a[pj];
a[pj] = t;
pi++;
pj--;
}
for (i=0; i<6; i++)
cout << a[i] << ",";
cout << endl;
return 0;
}
第25题
输出:( )
【答案】:6,5,4,3,2,1,
【解析】
双指针模拟,注意最后“1”后面还有一个“,”
#include <iostream>
using namespace std;
int main()
{
int i, length1, length2;
string s1, s2;
s1 = "I have a dream.";
s2 = "I Have A Dream.";
length1 = s1.size();
length2 = s2.size();
for (i=0; i<length1; i++)
if (s1[i]>='a' && s1[i]<='z')
s1[i] -= 'a' - 'A';
for (i=0; i<length2; i++)
if (s2[i]>='a' && s2[i]<='z')
s2[i] -= 'a' - 'A';
if (s1==s2)
cout << "=" << endl;
else if (s1>s2)
cout << ">" << endl;
else
cout << "<" << endl;
return 0;
}
第26题
输出:( )
【答案】:=
【解析】
第12行至第13行,就是将小写字母转为大写字母。s1和s2最后都转为"I HAVE A DREAM.",判断为相等
标签:tmp,26,int,s2,s1,初赛,max,pi,CSP From: https://blog.csdn.net/guolianggsta/article/details/141550997