练习场: https://ac.nowcoder.com/acm/contest/5657
1. 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)
#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)
#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)
#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)
#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)
#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)
#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)
#include <stdio.h>
int main(){
long a, b;
while(~scanf("%ld %ld", &a, &b)){
printf("%ld\n", a+b);
}
return 0;
}
9.字符串排序(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)
#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)
#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#