错误代码 QAQ
N*
Time Limit:?1000MS Memory Limit:?65536KB Submit StatisticProblem Description
如題所示,你需要找出長度為 n 的數列中的正整數。
先輸出正整數的個數,再逆序輸出其中的正整數(如果有)。
Input
輸入數據有多組(數據組數不超過 50),到 EOF 結束。
對于每組數據,第一行先輸入一個數 n (1 <= n <= 10000) 表示數列的長度。接下來的一行輸入這個數列。
保證數列中的數全部在 int 范圍內。
Output
對于每組數據:
- 首先輸出一行,表示正整數的個數。
- 如果正整數的個數大于 0,則接下來逆序(輸入順序的相反順序)輸出數列中的正整數,輸出的整數兩兩之間有空格,且每 10 個為一行。
當所有組的數據全部輸出完畢后,在最后輸出單獨的一行 "QAQ"(不包括引號)。
Example Input
5 1 -2 3 4 5 2 -3 -5Example Output
4 5 4 3 1 0 QAQ
#include<stdio.h>
#include<string.h>int main(void)
{
? ? int i, j, n, a[10000], m, w, b[10000], k;
? ? while(~scanf("%d", &n))
? ? {
? ? ? ? w = 0;
? ? ? ? k = 1;
? ? ? ? memset(b, -1, sizeof(b));
? ? ? ? for(i = 1; i <= n; i++)
? ? ? ? {
? ? ? ? ? ? scanf("%d", &a[i]);
? ? ? ? }
? ? ? ? for(i = 1; i <= n; i++)
? ? ? ? {
? ? ? ? ? ? if(a[i] > 0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? w++;
? ? ? ? ? ? ? ? b[k++] = a[i];
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? if(w >= 2)
? ? ? ? {
? ? ? ? ? ? i = 1;
? ? ? ? ? ? j = w;
? ? ? ? ? ?while(i < j)
? ? ? ? ? {
? ? ? ? ? ?m = b[i], b[i] = b[j], b[j] = m;
? ? ? ? ? ?i++;
? ? ? ? ? ?j--;
? ? ? ? ? }
? ? ? ? ? ? printf("%d\n", w);
? ? ? ? ? ? for(i = 1; i <= w; i++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ?printf("%d%c", b[i], i % 10 == 0?'\n':' ');
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? else if(w == 1)
? ? ? ? {
? ? ? ? ? ? printf("%d\n", b[1]);
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? printf("0\n");
? ? ? ? }
? ? ? ? printf("\n");
? ? }
? ? printf("QAQ\n");
? ? return 0;
}
總結
- 上一篇: 程序员阿士顿的故事
- 下一篇: SSH基础:ssh首次连接的公钥认证