C/C++开发文档和常用的输入方式汇总
C/C++开发文档获取
之前下载过一个开发文档,今天push到了Gitee上了。可以随时获取,链接
字符串操作
输入输出【包含字符串】
#include<stdio.h>
int main() {
char s[20];
int i = 0;
char a;
printf("scanf()不能输入空格\n");
scanf("%s %d", s, &i);
printf("%s %d\n", s, i);
printf("getchar()和putchar()读取或输出下一个可用的字符!可用结合循环使用【但是比较乱】\n");
a = getchar();
putchar(a);
printf("\n");
printf("gets()和puts()读取或输出一行可用的字符!\n");
gets(s);
printf("%s\n", s);
return 0;
}
/*
scanf()不能输入空格
hello world 10
hello 0
getchar()和putchar()读取或输出下一个可用的字符!可用结合循环使用【但是比较乱】
w
gets()和puts()读取或输出一行可用的字符!
orld 10
*/
刷题记录
后缀子串排序
//法1:排序交换
#include <stdio.h>
#include <string.h>
#define MAX 101
int main() {
//用于存放本体和各子串
char Save[MAX][MAX] = {0};
//将原本的串输入第一行
scanf("%s", Save[0]);
//记录串长,也即子串个数
int Length = strlen(Save[0]);
//将各个子串存入了这个大数组
for (int i = 1; i < Length; i++)
strcpy(Save[i], Save[0] + i);
char TMP[MAX] = {0};
//使用排序交换的方法
for (int i = 0; i < Length - 1; i++)
for (int j = i + 1; j < Length; j++) {
if (strcmp(Save[i], Save[j]) > 0) {
strcpy(TMP, Save[i]);
strcpy(Save[i], Save[j]);
strcpy(Save[j], TMP);
}
}
//输出所有结果
for (int i = 0; i < Length; i++)
printf("%s\n", Save[i]);
return 0;
}
舞会真题
#include<stdio.h>
#include<string.h>
#include<math.h>
int main() {
int m = 0, n = 0, k = 0;
int mf = 0, nf = 0;
int i = 0;
scanf("%d %d", &m, &n);
scanf("%d", &k);
for (i = 0; i < k; i++) {
mf = i % m + 1;
nf = i % n + 1;
printf("%d %d\n", mf, nf);
}
return 0;
}
约瑟夫环真题
#include<stdio.h>
int main() {
int n = 0, k = 0, m = 0, i, j, z = 0;
int a[1000] = {0};
scanf("%d %d %d", &n, &k, &m);
z = k - 1;//z就是当前游标 ,从1开始。这是k还没喊呢
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
z = z % n + 1;
while (a[z] == 1) { //避免无效 增加
z = z % n + 1;
}
}
a[z] = 1;
printf("%d,", z);
}
return 0;
}