写在前面:
最近有小学弟问了,刚来的小学弟正在打基础的阶段
于是po出了老同学写的答案^^
希望小学弟们能在c/c++的世界打出一片天地,算法的大门时刻为你们打开oooooo
A
Problem Description
机械实验班有个同学叫小泉,有一天数学老师给小泉布置了一道个人作业,给小泉M(M<=100)组数据,每组数据有N个正整数(N<=100)让他把每组的N个数按升序排成一行,但由于数的数目比较多,人工做很费时,于是小泉就想到了喜欢编程序的你,请你帮他解决这个问题,可不要让他失望噢。
Input
输入包括M+1行,第一行是两个正整数M、N;M表示总共多少组数据,下面M行每行包含N个正整数。(输入数据之间会用空格隔开)
Output
输出包括M行,每行分别对应输入中M组数据的升序序列,数与数之间用一个空格隔开。
Example Input
2 3
1 3 2
4 2 6
Example Output
1 2 3
2 4 6
#include <stdio.h>
int main()
{
int m ,n, i, j, a[100], *p, *q, t, k, x;
scanf("%d %d", &m, &n);
for(i = 1; i <= m; i++)
{
for(j = 0; j < n; j++)
{
scanf("%d", &a[j]);
}
for(k = 0; k < n; k++)
{
p = &a[0];
q = &a[1];
for(j = 0; j <= n - k - 2; j++)
{
if(*q < *p)
{
t = *q;
*q = *p;
*p = t;
}
p++;
q++;
}
}
for(x = 0; x < n - 1; x++)
{
printf("%d ", a[x]);
}
printf("%d\n", a[n - 1]);
}
return 0;
}
B
Problem Description
LeiQ当上了体育委员,现在老师让他去给班级里的人排队,LeiQ刚学了排序,所以他想以这种方式给班级里的人排队(从矮到高),他想知道排序完成后的结果。
Input
多组输入,每组的第一行是一个正数n(1<=n<=100),第二行是n个数,表示每一个人的高度。
Output
输出排序完成后的结果。
Example Input
3
176 175 174
Example Output
174 175 176
#include <stdio.h>
int main()
{
int n, i, j, a[100], *p, *q, t, k, x;
while(~scanf("%d", &n))
{
for(i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for(k = 0; k < n; k++)
{
p = &a[0];
q = &a[1];
for(j = 0; j <= n - k - 2; j++)
{
if(*q < *p)
{
t = *q;
*q = *p;
*p = t;
}
p++;
q++;
}
}
for(x = 0; x < n - 1; x++)
{
printf("%d ", a[x]);
}
printf("%d\n", a[n - 1]);
}
return 0;
}
C
Problem Description
输入一个正整数n(1<=n<=10),再输入n*n的矩阵,要求求该矩阵的下三角元素之和。
Input
输入包括n+1行。
第一行为整数n;
接下来的n行为矩阵数据。
Output
矩阵的下三角元素之和。
Example Input
5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
Example Output
75
#include <stdio.h>
int main()
{
int n, *p, a[100][100], i, j, s;
scanf("%d", &n);
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);
}
}
s = 0;
p = &a[0][0];
for(i = 0; i < n; i++)
{
for(j = 0; j <= i; j++)
{
s += *p;
p++;
}
p = &a[i + 1][0];
}
printf("%d\n", s);
return 0;
}
D
Example Input
aaaa
ggg g
lozxvxoMJBCHsTXooXTsHCBJMoxvxzol
i am a good acmer
2013
Example Output
YES
YES
YES
NO
#include <stdio.h>
#include <string.h>
int main()
{
int i, n, k;
char a[100003], b[100003], *p, *q;
while (gets(a))
{
if(strcmp(a,"2013") == 0)
break;
k = 0;
for(i = 0; a[i] != '\0'; i++)
{
if(a[i] != ' ')
{
b[k] = a[i];
k++;
}
}
b[k] = '\0';
n = strlen(b);
p = b;
q = b + (n - 1);
for(i = 0; i < n; i++)
{
if(*q == *p)
{
p++;
q--;
}
else
break;
}
if(i >= n)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
————————————————
版权声明:本文为CSDN博主「清寒飘叶」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a_madara/article/details/53526496