如果你已经掌握了一些C语言的基本语法,想练习自己写代码的能力,建议大家可以看一下博主整理题目,从入门到进阶都有。每个阶段需要的技能会有差异,大家要补充对应的基础知识。一起加油,那么一键三连我们开始发车。
目录
入门组
1,车厢重组问题
2,硬币翻转
3,Peter的烟
4,子数整数
普及组
1,级数求和
2,陶陶摘苹果
3,校门外的树
4,明明的随机数
5,质因素分解
6,不高兴的津津
7,津津的储蓄计划
结语
算法标签【模拟,排序】
int main()
{
int n = 0;
int arr[10000];
int tmp = 0;
int cnt = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d ", &arr[i]);
}
//冒泡
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - i-1; j++)
{
if (arr[j] > arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
cnt++;
}
}
}
printf("%d", cnt);
return 0;
}
算法标签【模拟,搜索,数学】
int main()
{
int arr[101];
int n = 0;
scanf("%d", &n);
printf("%d\n", n);
for (int i = 1; i <= n; i++)
arr[i] = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (j != i)
{
arr[j] = 1 - arr[j];
}
}
for (int j = 1; j <= n; j++)
{
printf("%d", arr[j]);
}
printf("\n");
}
return 0;
}
算法标签【模拟,数学】
int Add(int yd,int n,int k)
{
int smok = 0;
smok += n;
yd += n;
while (yd>=k)
{
yd -= k;
smok++;
yd++;
}
return smok;
}
int main()
{
int n = 0;
int k = 0;
int yd = 0;
scanf("%d %d", &n, &k);
int smok = Add(yd, n, k);
printf("%d", smok);
return 0;
}
算法标签【字符串,搜索,枚举】
int main()
{
int k = 0;
scanf("%d", &k);
int sub1, sub2, sub3;
int i = 0;
int flag = 0;
for (i = 10000; i <= 30000; i++)
{
sub1 = i / 100;
sub2 = i % 10000/ 10;
sub3 = i % 1000;
if ((sub1 % k == 0) && (sub2 % k == 0) && (sub3 % k == 0))
{
printf("%d\n", i);
flag = 1;
}
}
if (flag != 1)
{
printf("No");
}
return 0;
}
算法标签【数学】
int main() {
int k, n;
double sn = 0.0;
scanf("%d", &k);
for (n = 1;; n++) {
sn += 1.0 / n;
if (sn > k * 1.0)
break;
}
printf("%d", n);
return 0;
}
算法标签【模拟】
int main()
{
int n = 30;
int arr[10];
int len = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (i = 0; i < len; i++)
{
scanf("%d ", &arr[i]);
}
int k = 0;
scanf("%d", &k);
int j = 0;
int count1 = 0;
int count2 = 0;
for (j = 0; j < len; j++)
{
if (k == arr[j])
{
count1++;
}
else if (k + n >= arr[j])
{
count2++;
}
}
printf("%d", count1+count2);
return 0;
}
算法标签【模拟】
int main()
{
int l, m;
int arr[10000];
int count = 0;
int a = 0;
int b = 0;
scanf("%d %d", &l, &m);
for (int i = 0; i <= l; i++)
{
arr[i] = 0;
}
for (int i = 1; i <= m; i++)
{
scanf("%d %d", &a, &b);
for (int j = a; j <= b; j++)
{
if (arr[j] == 0)
{
arr[j] = 1;
}
}
}
for (int i = 0; i <= l; i++)
{
if (arr[i] == 0)
{
count++;
}
}
printf("%d", count);
return 0;
}
算法标签【模拟,排序】
int main() {
int N, a[1001] = { 0 }, t, i;
int count = 0;
scanf("%d", &N);
for (i = 0; i < N; i++) {
scanf("%d", &t);
if (a[t] == 0) {
a[t] = t;
count++;
}
}
printf("%d\n", count);
for (i = 0; i < 1001; i++) {
if (a[i] != 0)
printf("%d ", a[i]);
}
return 0;
}
算法标签【数学,素数判断,筛法,质数】
int main()
{
int n = 0;
scanf("%d", &n);
int i, j, max;
for (i = 2; i < sqrt(n); i++)
{
if (n % i == 0)
{
j = n / i;
break;
}
}
if (i > j)
{
max = i;
}
else
{
max = j;
}
printf("%d", max);
return 0;
}
算法标签【枚举】
int main()
{
int n = 0;
int m = 0;
int i = 0;
int max_time = 0;
int weekday = 0;
for (i = 0; i < 7; i++)
{
scanf("%d %d", &n, &m);
if (n + m > max_time && n + m > 8)
{
weekday = i + 1;
max_time = n + m;
}
}
printf("%d", weekday);
return 0;
}
算法标签【模拟,枚举】
int main()
{
int y_money = 0;
int s_money = 0;
int c_money = 0;
for (int i = 1; i <= 12; i++)
{
scanf("%d", &y_money);
s_money = s_money + 300 - y_money;
if (s_money < 0)
{
printf("-%d", i);
return 0;
}
else
{
c_money += s_money / 100;
s_money %= 100;
}
}
printf("%d", 120 * c_money + s_money);
return 0;
}
博主也是初学者,欢迎大家阅读和指正。当然如果觉得对大家有帮助一定要关注博主,后续也会有更多的有针对性的题目带给大家,大家一起加油,键盘敲烂,年薪三十万!!!