C语言考核
猴子偷桃
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <Windows.h>
int sum = 1;
int f(int n, int sum) {
if (n > 0) {
return f(n - 1, 2 * sum + 2);
}
else {
return sum;
}
}
int main() {
int n = 9, sum = f(n, 1);
printf("%d\n", sum);
}
成绩等级
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <Windows.h>
int main(void)
{
float score;
printf("请输入您的考试成绩:");
scanf("%f", &score);
if (score >= 90 && score <= 100)
{
printf("优秀!\n");
}
else if (score >= 80 && score <= 89)
{
printf("良好!\n");
}
else if (score >= 60 && score <= 79)
{
printf("及格!\n");
}
else if (score >= 0 && score <= 59)
{
printf("补考!继续努力!\n");
}
else
{
printf("请重新输入!\n");
}
return 0;
}
降序输出三个数
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <stdlib.h>
int main()
{
int a, b, c, t;
printf("请输入三个数:\n");
scanf("%d%d%d", &a, &b, &c);
if (a < b)
{
t = a;
a = b;
b = t;
}
if (a < c)
{
t = a;
a = c;
c = t;
}
if (b < c)
{
t = b;
b = c;
c = t;
}
printf("%d %d %d\n", a, b, c);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <stdlib.h>
void Swap(int* px, int* py)
{
int tmp = 0;
tmp = *px;//解引用
*px = *py;
*py = tmp;
}
int main()
{
int a, b, c;
printf("请输入三个数:\n");
scanf("%d%d%d", &a, &b, &c);
if (a < b)
{
Swap(&a, &b);
}
if (a < c)
{
Swap(&a, &c);
}
if (b < c)
{
Swap(&b, &c);
}
printf("%d %d %d\n", a, b, c);
system("pause");
return 0;
}
9*9乘法表
int main() {
int i, j, n;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++)
printf("%d*%d=%2d ", i, j, i * j);
printf("\n");
}
return 0;
}
http://c.biancheng.net/cpp/html/2808.html
int main()
{
//外层循环变量,控制行
int i = 0;
//内层循环变量,控制列
int j = 0;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
{
printf("%dx%d=%d\t", i, j, i * j);
}
//每行输出完后换行
printf("\n");
}
}
水仙花
int main()
{
int a, b, c, d;
printf("输出100-999的水仙花");
for (d = 100; d <= 999; d++)
{
a = d / 100;
b = (d - a * 100) / 10;
c = d % 10;
if (d == a * a * a + b * b * b + c * c * c)
printf("%d ", d);
}
printf("\n");
}
质因数
#include <stdio.h>
int main()
{
int i=2,n;
printf("请输入一个正整数:");
scanf("%d",&n);
while(n!=i) //若i=n,则质因数就是n本身
{
if(n%i==0) //若i是质因数,则打印出i的值,并用商给n赋新值
{
printf("%d\n",i);
n=n/i;
}
else i++; //若不能被L整除,则算下一个i
}
printf("%d\n",n);
return 0;
}
同学捐款
#include <stdio.h>
int main()
{
int i;
float amount,aver,total;
for(i=1,total=0;i<=10;i++)
{
printf("请%d个同学捐款:",i);
scanf("%f",&amount);
total=total+amount;
if(total>=100000)
break;
}
aver=total/(i-1);
printf("总捐款人数为%d\n",(i-1));
printf("人均捐款金额为%f\n",aver);
return 0;
}
累加和
#include <stdio.h>int main(){ int i,n; double factorial; printf("输入n的值:"); scanf("%d",&n); factorial=1; for(i=1;i<=n;i++) factorial=factorial*i; printf("%d!=%.0f\n",n,factorial); return 0;}
输入15个数升序输出10个数字,冒泡and选择排序
#define NUMBER 15
void bsort(int x[], int n)
{
int i, j;
for (i = 0; i < n - 1; i++)
{
for (j = 1; j < n - i; j++)
{
if (x[j] < x[j - 1])
{
int tmp = x[j];
x[j] = x[j - 1];
x[j - 1] = tmp;
}
}
}
}
int main(void)
{
int i, a[NUMBER];
puts("please input the elements.");
for (i = 0; i < NUMBER; i++)
{
printf("NO.%d = ", i + 1); scanf("%d", &a[i]);
}
bsort(a, NUMBER);
puts("\n====================");
for (i = 0; i < NUMBER-5; i++)
{
printf("a[%d] = %d\n", i, a[i]);
}
return 0;
}
int main(void)
{
int a[10];
int i, j, t;
printf("input 10 numbers:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
printf("\n");
//一共排9趟序,因为最后一趟只剩一个数,不需要排
for (i = 0; i < 9; i++) {
//每趟从第一个数开始排,第一趟排完将最大的一个数沉底(即放在数组最后一个位置),第二趟不需要再管最后一个数了,后面同理,第i趟只需要管前面9 - i个数就够了。
for (j = 0; j < 9 - i; j++) {
//前面一个数比后面一个数大时,交换他俩的位置
if (a[j] > a[j + 1]) {
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
printf("the sorted numbers:\n");
//最后将排好序的数组顺序输出
for (i = 0; i < 10; i++) {
printf("%d\t", a[i]);
}
printf("\n");
}
#include<stdio.h> void main(){int t,i,j,a[10]={1,3,5,7,8.10,2,4,6,9};for(i=1;i<10;i++){ for(j=0;j<i;j++){ if(a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } }}for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); } http://c.biancheng.net/cpp/html/3463.html
百钱买百鸡
#include <stdio.h>int main(){ int i, j, k; printf("百元买百鸡的问题所有可能的解如下:\n"); for( i=0; i <= 100; i++ ) for( j=0; j <= 100; j++ ) for( k=0; k <= 100; k++ ) { if( 5*i+3*j+k/3==100 && k%3==0 && i+j+k==100 ) { printf("公鸡 %2d 只,母鸡 %2d 只,小鸡 %2d 只\n", i, j, k); } } return 0;}
#include <stdio.h>
int main()
{
int chick, female, male;
for (chick = 0; chick <= 100; chick++)
{
for (female = 0; female <= 33; female++)
{
for (male = 0; male <= 20; male++)
{
if (chick / 3 + female * 3 + male * 5 == 100 && chick % 3 == 0 && chick + female + male == 100)
printf("小鸡有%d只,母鸡有%d只,公鸡有%d只.\n", chick, female, male);
}
}
}
}
输入10个数字输出最大值和最小值,MIN和MAX函数
#include <stdio.h>
int main ()
{
int i,max,min;
printf("输入数字:");
scanf("%d\n",&max);//先输入一个数字当作最大值
for(i=1;i<=9;i++)//10-1=9,循环9次之后得到结果
{
scanf("%d",&min);//把每一次输入的数字当作最小值
if(max>min)//比较大小
{
max=max;
min=min;
}
else
{
max=min;
min=max;
}
}
printf("最大值是%d,最小值是%d",max,min);//输出!
}
#include <stdio.h>
#include <math.h>
int main(){
int a,b,c,d;
int temp, temp1,temp2;
int max(int a,int b);
int min(int a,int b);
printf("请输入a的值:");
scanf("%d",&a);
printf("请输入b的值:");
scanf("%d",&b);
printf("请输入c的值:");
scanf("%d",&c);
printf("请输入d的值:");
scanf("%d",&d);
temp1=max(a,b);
temp2=max(c,d);
temp=max(temp1,temp2);
printf("四个数中最大的是:%d",temp);
temp1=min(a,b);
temp2=min(c,d);
temp=min(temp1,temp2);
printf("四个数中最小的是:%d",temp);
}
int max(int a,int b){
if(a>b){
return a;
}else{
return b;
}
}
int min(int a,int b){
if(a<b){
return a;
}else{
return b;
}
}
直角三角形
int main(void){ int i, j, n; printf("请输入图形的行数"); scanf("%d", &n); for ( i = 0; i < n; i++) //i代表行数,假如当n=6i就要进行6次循环 { for (j = i; j >= 0; j--) //j负责打印星星 printf("* "); printf("\n"); } system("pause"); return EXIT_SUCCESS;}https://blog.csdn.net/qq_42855675/article/details/81412200https://blog.csdn.net/wgajc4840/article/details/103652479https://www.sqlsec.com/2018/10/for.htmlhttps://blog.csdn.net/ccjsj1/article/details/5448732
菱形
int main() { int line; // 菱形总行数 int column; // 菱形总列数 int i; // 当前行 int j; // 当前列 printf("请输入菱形的行数(奇数):"); scanf("%d", &line); if (line % 2 == 0) { // 判断是否是奇数 printf("必须输入奇数!\n"); exit(1); } column = line; // 总行数和总列数相同 for (i = 1; i <= line; i++) { // 遍历所有行 if (i < (line + 1) / 2 + 1) { // 上半部分(包括中间一行) for (j = 1; j <= column; j++) { // 遍历上半部分的所有列 if ((column + 1) / 2 - (i - 1) <= j && j <= (column + 1) / 2 + (i - 1)) { printf("*"); } else { printf(" "); } } } else { // 下半部分 for (j = 1; j <= column; j++) { // 遍历下半部分的所有列 if ((column + 1) / 2 - (line - i) <= j && j <= (column + 1) / 2 + (line - i)) { printf("*"); } else { printf(" "); } } } printf("\n"); } return 0;}
int main()
{
int n;
scanf("%d", &n);
n = n | 1;
for (int r = 0; r < n; r++) {
for (int c = 0; c < n; c++) {
int n2 = n / 2;
if (r <= n2 && c >= n2 - r && c <= n2 + r) {
printf("*");
}
else if (r > n2 && c >= r - n2 && c < n - r + n2) {
printf("*");
}
else {
printf(" ");
}
}
printf("\n");
}
return 0;
}
鸡兔同笼
https://mp.weixin.qq.com/s/F_7ScNWbsAKay-XONGpwIQ
int main() {
int a, b, x, t = 1;
printf("请输入鸡和兔子总数:");
scanf("%d", &a);
printf("请输入鸡和兔子脚的总数:");
scanf("%d", &b);
for (x = 0; x <= a; x++)
if (x * 2 + (a - x) * 4 == b)
printf("有%d鸡,%d兔子\n", x, a - x);
t = 0;
if (t == 1)
printf("无解,输入错误\n");
return 0;
}
int main()
{
int a, b, c, d;//a:鸡,b:兔,c:头数,d:脚数
int i = 1;
printf("请输入鸡和兔总的头数:");
scanf("%d", &c);
while (i)
{
printf("请输入鸡和兔总的脚数:");
scanf("%d", &d);
if (d % 2 == 1)
{
printf("鸡兔的总脚数不能是奇数\n");
continue;
}
else if (d % 2 == 0)
i = 0;
}
for (a = 1; a < c; a++)
{
b = c - a;
if (a * 2 + b * 4 == d)
break;
}
printf("鸡的数量:%d只\n兔的数量:%d只\n\n", a, b);
return 0;
}
int main(){
int a,x,y,n,m;
scanf("%d",&a);
while(a--){
scanf("%d%d",&n,&m);
if(!(m%2)){//总腿数应为偶数
x=2*n-m/2;//鸡的个数
y=m/2-n;//兔的个数
if(x>=0&&y>=0){
printf("%d %d\n",x,y);
continue;
}
}
printf("No answer\n");
}
return 0;
}
int main(){
int a,x,y,n,m;
scanf("%d",&a);
while(a--){
scanf("%d%d",&n,&m);
if(!(m%2)){//总腿数应为偶数
x=2*n-m/2;//鸡的个数
y=m/2-n;//兔的个数
if(x>=0&&y>=0){
printf("%d %d\n",x,y);
continue;
}
}
printf("No answer\n");
}
return 0;
}
https://blog.dotcpp.com/a/8639
int main()
{
int a,b,n, m;
// a鸡的数量
// b兔的数量
// n鸡兔总数
// m总脚数
scanf("%d %d", &n,&m);
a = (4 * n - m) / 2;//算出鸡的数量
b = n - a;//算出兔的数量
if (a <= 0 || b <= 0)
{
//结果小于等于0,答案不成立,无解
printf("No answer");
}
else
{
//结果大于0
printf("%d %d", a, b);
}
return 0;
}
int main(void)
{
int head, foot, num1, num2;
printf("请输入鸡和兔的总头数和总脚数,用空格隔开:\n");
scanf("%d %d", &head, &foot);
if (foot % 2 == 1 || foot < head * 2)
{
printf("输入有误!\n");
return 0;
}
num1 = (foot - head * 2)/(4 - 2);
num2 = head - num1;
if ((num1 >= 0) && (num2 >= 0))
printf("兔子个数:%d,鸡的个数:%d\n", num1, num2);
else
printf("输入有误!\n");
return 0;
}
鸡兔鸟
void Find(int n);
void Find(int n)
{
int i, j, k;//循环变量,分别为鸟鸡兔
int sumi = 0;//算法优化测试1
int sumj = 0;//2
int sumk = 0;//3
for (i = 1; i <= n; i++)
{
sumi++;
for (j = 1; j <= n - i; j++)
{
sumj++;
for (k = 1; k <= n - i - j; k++)
{
sumk++;
//头和脚都要相等
if (((i * 9 + j * 1 + k * 1) == n) && ((i * 2 + j * 2 + k * 4) == n))
{
printf("%d %d %d\n", i, j, k);
}
}
}
}
printf("i一共循环了多少%d次\n", sumi);
printf("j一共循环了多少%d次\n", sumj);
printf("k一共循环了多少%d次\n", sumk);
}
int main()
{
int number;
scanf("%d", &number);
Find(number);
return 0;
}
结构体
#include<iostream>
#include<cstring>
#define PERSON 10
#define COURSE 3
using namespace std;
struct Student{
char name[10];
int numbers;
int age;
int score[COURSE];
int Total_score;
};
int main(){
Student student[PERSON],student_T,max1[COURSE];
int i,j,k,t,m;
cout<<" 姓名 学号 年龄 语文成绩 数学成绩 英语成绩"<<endl;
for(i=0;i<PERSON;i++){
cout<<"现在请输入第"<<i+1<<"位小学生的信息";
cin>>student[i].name>>student[i].numbers>>student[i].age;
if(student[i].age<6||student[i].age>14){
cout<<"年龄超出有效范围,请重新输入:";
cin>>student[i].age;
}
for(j=0;j<COURSE;j++){
cin>>student[i].score[j];
if(student[i].score[j]<0||student[i].score[j]>100){
cout<<"成绩超出有效范围,请重新输入第"<<j+1<<"门成绩:";
cin>>student[i].score[j];
}
}
}
for(i=0;i<PERSON;i++)//求总分
student[i].Total_score=student[i].score[0]+student[i].score[1]+student[i].score[2];
cout<<"\n"<<"\n"<<"---------------------------------------------------------------------------------------------------------"<<endl;
cout<<" 姓名 学号 年龄 语文成绩 数学成绩 英语成绩 总分"<<endl;
cout<<"---------------------------------------------------------------------------------------------------------"<<endl;
for(i=0;i<PERSON;i++){
cout<<"第"<<i+1<<"位小学生的信息"<<"\t"<<student[i].name<<"\t"<<student[i].numbers<<"\t"<<student[i].age<<"\t";
for(j=0;j<COURSE;j++)
cout<<student[i].score[j]<<"\t"<<"\t";
cout<<student[i].Total_score<<endl;
}
for(i=0;i<PERSON-1;i++){//总分排序
k=i;
for(j=i+1;j<PERSON;j++){
if(student[j].Total_score>student[k].Total_score)
k=j;
}
student_T=student[k];
student[k]=student[i];
student[i]=student_T;
}
cout<<"\n"<<"\n"<<" 总分排名"<<endl;
cout<<"----------------------"<<endl;
cout<<"排名 姓名 总分"<<endl;
cout<<"----------------------"<<endl;
for(i=0;i<PERSON;i++)//输出总分排名
cout<<i+1<<"\t"<<student[i].name<<"\t"<<student[i].Total_score<<endl;
for(m=0;m<COURSE;m++){//最高分排序
for(i=0;i<PERSON-1;i++){
k=i;
for(j=i+1;j<PERSON;j++){
if(student[j].score[m]>student[k].score[m])
k=j;
}
student_T=student[k];
student[k]=student[i];
student[i]=student_T;
}
max1[m]=student[0];
}
cout<<"\n"<<"\n"<<" 单科最高分"<<endl;
cout<<"------------------------------------"<<endl;
cout<<"科目 最高分 姓名 学号 年龄"<<endl;
cout<<"------------------------------------"<<endl;
for(i=0;i<COURSE;i++){
if(i==0) //输出科目 、最高分
cout<<"语文"<<"\t"<<max1[0].score[0]<<"\t";
else if(i==1)
cout<<"数学"<<"\t"<<max1[1].score[1]<<"\t";
else if(i==2)
cout<<"英语"<<"\t"<<max1[2].score[2]<<"\t";
cout<<max1[i].name<<"\t"<<max1[i].numbers<<"\t"<<max1[i].age<<endl;
}
system("pause");
return 0;
}