目前共有97篇帖子。
【期末複習】C語言期末複習
1樓 巨大八爪鱼 2016-1-6 16:12
【冒泡排序法】
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i, j, n, temp, *nums;
    scanf("%d", &n);
    nums = (int *)calloc(n, sizeof(int));
   
    for (i = 0; i < n; i++)
        scanf("%d", nums + i);
   
    for (i = 1; i <= n - 1; i++) // 大循環:[1, n-1],共比較n-1輪,特別注意這裡是1開頭
    {
        for (j = 0; j < n - i; j++) // 小循環:[0, n-i),每輪進行n-i次
        {
            if (nums[j] < nums[j + 1]) // 這裡寫<是從大到小, >是從小到大
            {
                temp = nums[j];
                nums[j] = nums[j + 1];
                nums[j + 1] = temp;
            }
        }
    }
   
    for (i = 0; i < n; i++)
        printf("%d ", nums[i]);
    putchar('\n');
    free(nums);
    return 0;
}
2樓 巨大八爪鱼 2016-1-6 16:38

#include <stdio.h>

#define N 10

void fun(int *nums)
{
    int cnt, num;
    for (cnt = 0, num = 0; cnt < 10; num++)
    {
        if (num % 2 == 1 && num % 3 == 1 && num % 5 == 1)
        {
            nums[cnt] = num;
            cnt++;
        }
    }
}

int main()
{
    int i;
    int nums[N];
    FILE *fp;
    if ((fp = fopen("tmp.txt", "w")) == NULL)
    {
        printf("文件打不開!\n");
        return 1;
    }
   
    fun(nums);
    for (i = 0; i < N; i++)
    {
        printf("%d ", nums[i]);
        fprintf(fp, "%d ", nums[i]);
    }
   
    fclose(fp);
    return 0;
}

/*void fun(int *nums)
{
    int i, num = 0;
    for (i = 0; i < N; num++)
    {
        if (num % 2 == 1 && num % 3 == 1 && num % 5 == 1)
        {
            nums[i] = num;
            i++;
        }
    }
}*/

编写中出现的错误:3处

以后练习时要尽量做到写一次就编译通过且正常运行。因为考试时根本无法在电脑上实际调试。
3樓 巨大八爪鱼 2016-1-9 13:27
【冒泡排序法复习】
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int *nums, n, i, j, temp;
    scanf("%d", &n);
    nums = (int *)calloc(n, sizeof(int));
    for (i = 0; i < n; i++)
        scanf("%d", nums + i);
   
    for (i = 1; i <= n - 1; i++)
    {
        for (j = 0; j < n - i; j++)
        {
            if (nums[j] > nums[j + 1])
            {
                temp = nums[j];
                nums[j] = nums[j + 1];
                nums[j + 1] = temp;
            }
        }
    }
   
    for (i = 0; i < n; i++)
        printf("%d ", nums[i]);
   
    free(nums);
    return 0;
}
4樓 巨大八爪鱼 2016-1-9 13:31
回復3樓 @巨大八爪鱼 的內容:
【冒泡排序法复习】
#include <stdio.h>
#include <stdlib.h>
int main()
{...
错误1:最后忘了putchar('\n')!!!!!!!!!!
错误2:之前忘了 int *nums, n, i, j, temp;最后的 分号
5樓 巨大八爪鱼 2016-1-9 13:44
#include <stdio.h>


int main()
{
    char s1[20] = "成都";
    char *s2 = "大学";
    int i;
    for (i = 0; s1[i] != '\0'; i++);
    while (*s2 != '\0')
        s1[i++] = *s2++;
    s1[i] = '\0';
    puts(s1);
    return 0;
}
存在的错误:忘了最后的s1[i] = '\0';
9樓 巨大八爪鱼 2016-1-9 13:58
Both *p++ and (*p)++ return the current value of *p.
But *p++ increases the pointer while (*p)++ makes the value incremented.
10樓 巨大八爪鱼 2016-1-9 14:04
#include <stdio.h>

int main()
{
    int a[3][4];
    int b[4][3];
    int i, j;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            scanf("%d", *(a + i) + j);
            b[j][i] = a[i][j];
        }
    }
    
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 3; j++)
            printf("%4d", b[i][j]);
        putchar('\n');
    }
    return 0;
}
11樓 巨大八爪鱼 2016-1-9 14:14
#include <stdio.h>
#include <string.h>

int main()
{
    char strs[10][100];
    int i;
    int max_i = 0;
    for (i = 0; i < 10; i++)
        gets(strs[i]);
    
    for (i = 1; i < 10; i++)
    {
        if (strcmp(strs[max_i], strs[i]) < 0)
            max_i = i;
    }
    printf("最大的串是:%s\n", strs[max_i]);
    return 0;
}
12樓 巨大八爪鱼 2016-1-9 14:17
#include <stdio.h>

int main()
{
    int nums[3][4];
    int i, j;
    for (i = 0; i < 2; i++)
        for (j = 0; j < 4; j++)
            scanf("%d", &nums[i][j]);
    
    for (j = 0; j < 4; j++)
        nums[2][j] = nums[0][j] + nums[1][j];
    
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
            printf("%4d", nums[i][j]);
        putchar('\n');
    }
    return 0;
}
13樓 巨大八爪鱼 2016-1-9 14:25
#include <stdio.h>
#include <string.h>

int main()
{
    char str[21];
    int i, len;
    int flag = 0;
    
    gets(str);
    len = strlen(str);
    for (i = 0; i < len - i - 1; i++)
    {
        if (str[i] != str[len - i - 1])
        {
            flag = 1;
            break;
        }
    }
    if (flag == 1)
        puts("不構成回文\n");
    else
        puts("構成回文\n");
    return 0;
}

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2024 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。