acm模式输入输出(C语言)

练习场: https://ac.nowcoder.com/acm/contest/5657

1. A + B

A + B

#include <stdio.h>

int main(){
    int a, b;
    while(~scanf("%d %d", &a, &b)){
        printf("%d\n", a+b);
    }
    
    return 0;
}

2.A+B(2)

A+B(2)

#include <stdio.h>

int main(){
    int t;
    scanf("%d", &t);
    
    while(t--){
        int a,b;
        scanf("%d %d", &a, &b);
        printf("%d\n", a + b);
    }
    
    return 0;
}

3.A+B(3)

A+B(3)

#include <stdio.h>

int main(){
    for(int a, b;;){
        scanf("%d %d", &a, &b);
        if(a == 0 && b == 0) break;
        printf("%d\n", a+b);
    }
    
    return 0;
}

4.A+B(4)

A+B(4)

#include <stdio.h>

int main() {
    int n;

    for (;;) {
        scanf("%d", &n);
        if (n == 0) break;

        int sum = 0;
        for (int i = 0, t; i < n; i++) {
            scanf("%d", &t);
            sum += t;
        }
        printf("%d\n", sum);
    }

    return 0;
}

5.A+B(5)

A+B(5)

#include <stdio.h>

int main() {
    int t, n;
    scanf("%d", &t);
    while (t--) {
        scanf("%d", &n);

        int sum = 0;
        for (int i = 0, t; i < n; i++) {
            scanf("%d", &t);
            sum += t;
        }
        printf("%d\n", sum);
    }

    return 0;
}

6.A+B(6)

A+B(6)

#include <stdio.h>

int main() {
    int n;
    while (~scanf("%d", &n)) {
        int sum = 0;
        for (int i = 0, t; i < n; i++) {
            scanf("%d", &t);
            sum += t;
        }
        printf("%d\n", sum);
    }

    return 0;
}

7.A+B(7)

A+B(7)

#include <stdio.h>

int main() {
    int x, sum = 0;
    while (~scanf("%d", &x)) {
        sum += x;

        if (getchar() == '\n') {
            printf("%d\n", sum);
            sum = 0;
        }
    }

    return 0;
}

8.A+B(8)

A+B(8)

#include <stdio.h>

int main(){
    long a, b;
    while(~scanf("%ld %ld", &a, &b)){
        printf("%ld\n", a+b);
    }
    
    return 0;
}

9.字符串排序(1)

字符串排序(1)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define N 100
#define MAX_LEN 30

int n;
char strs[N][MAX_LEN];

int main(){
    scanf("%d", &n);
    for(int i = 0; i < n; i++){
        scanf("%s", strs[i]);
    }

    qsort(strs, n, MAX_LEN, strcmp);

    for(int i = 0; i < n; i++){
        printf("%s", strs[i]);
        printf("%c", (i + 1 == n ? '\n': ' '));
    }

    return 0;
}

10.字符串排序(2)

字符串排序(2)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_LEN 100

char line[MAX_LEN]; // 每一行输入的字符串
char *words[MAX_LEN]; // 保存每行的字符串指针
int word_count;

// 自定义比较函数,用于 qsort 排序
// compare 函数正确处理了指针转换,使得 qsort 能够对字符串数组进行排序。
int compare(const void *a, const void *b) {
    return strcmp(*(const char **)a, *(const char **)b);
}

int main() {
    // 读取每行输入直到EOF
    while (fgets(line, sizeof(line), stdin) != NULL) {
        word_count = 0;
        char *token = strtok(line, " \n"); // 使用空格或换行符分割字符串
        while (token != NULL) {
            words[word_count++] = token; // 将每个分割出来的字符串保存
            token = strtok(NULL, " \n");
        }

        // 对字符串数组进行排序
        // qsort 需要一个自定义比较函数,而不能直接使用 strcmp。
        qsort(words, word_count, sizeof(char *), compare);

        // 输出排序后的字符串
        for (int i = 0; i < word_count; i++) {
            printf("%s", words[i]);
            printf("%c", (i + 1 == word_count ? '\n' : ' '));
        }
    }

    return 0;
}

11.字符串排序(3)

字符串排序(3)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_LEN 100

char line[MAX_LEN]; // 每一行输入的字符串
char *words[MAX_LEN]; // 保存每行的字符串指针
int word_count;

// 自定义比较函数,用于 qsort 排序
// compare 函数正确处理了指针转换,使得 qsort 能够对字符串数组进行排序。
int compare(const void *a, const void *b) {
    return strcmp(*(const char **)a, *(const char **)b);
}

int main() {
    // 读取每行输入直到EOF
    while (fgets(line, sizeof(line), stdin) != NULL) {
        word_count = 0;
        char *token = strtok(line, ",\n"); // 使用逗号或换行符分割字符串
        while (token != NULL) {
            words[word_count++] = token; // 将每个分割出来的字符串保存
            token = strtok(NULL, ",\n");
        }

        // 对字符串数组进行排序
        // qsort 需要一个自定义比较函数,而不能直接使用 strcmp。
        qsort(words, word_count, sizeof(char *), compare);

        // 输出排序后的字符串
        for (int i = 0; i < word_count; i++) {
            printf("%s", words[i]);
            printf("%c", (i + 1 == word_count ? '\n' : ','));
        }
    }

    return 0;
}

#c##c语言##C##C语言##ACM#
全部评论

相关推荐

小米 手机电路工程师 年薪17万,显示驱动方向22.5万
点赞 评论 收藏
分享
6 9 评论
分享
牛客网
牛客企业服务