=0&&score{printf("不及格\n");}elseif(60{printf("中等\n");}elseif(80{printf("优秀\n");}else{printf("输入错误!\n");}}//2.计算1到100的" />

(完整版)c语言初学必背代码

(完整版)c语言初学必背代码
(完整版)c语言初学必背代码

//1.成绩判断

#include

int main()

{

//成绩

int score;

printf("请输入你的成绩:\n");

scanf("%d", &score);

//判断

if(score >=0 && score < 60)

{

printf("不及格\n");

}

else if(60 <= score && score < 80)

{

printf("中等\n");

}

else if(80 <= score && score < 100)

{

printf("优秀\n");

}

else

{

printf("输入错误!\n");

}

}

//2.计算1到100的和

#include

int main()

{

int sum = 0;//存结果变量

int i;

for(i=1;i <= 100;i++)

{

sum = sum + i;

}

printf("sum=%d\n", sum);

}

//3.最大公约数

#include

//求m,n的最大公约数

int main()

{

int m, n;

int i, k;

printf("请输入两个数:");

scanf("%d %d", &m, &n);

//三元运算符找较小的那个

k = m < n ? m : n;

//从较小的那个数倒着往前找

for(i=k; i>=1; i--)

{

//这是公约数

if((m % i == 0) && (n % i ==0))

{

printf("最大公约数是%d\n", i);

break;//跳出for循环

}

}

}

//4.最小公倍数

#include

//求m,n的最小公倍数

int main()

{

int m, n;

int max, min;//m,n中较大,较小的那个

int k;//max, 2*max, 3*max, .....

printf("请输入两个数:");

scanf("%d %d", &m, &n);

//也可以交换m,n,保证m小n大

max = m > n ? m : n;

min = m < n ? m : n;

k = max;//从max开始

while(k % min != 0)

{

k += max;//每次倍增

}

printf("最小公倍数是%d\n", k); }

//5.金字塔

#include

//金字塔

int main()

{

int i;//外层

int j;//内层

for(i=1;i<=10;i++)

{

//当前是在第i行

//先补空格10-i个

for(j=1;j<=10-i;j++)

{

printf(" ");

}

//再打2i-1个*

for(j=1;j<=2*i-1;j++)

{

printf("*");

}

printf("\n");

}

}//6.九九乘法表

#include

//打印九九乘法表

int main()

{

int i,j;

for(i=1;i<=9;i++)//外层一定是9行

{

for(j=1; j<=i; j++)//内层第几行走几遍

{

printf("%d*%d=%d ", i, j, i*j);

}

printf("\n");

}

}

//7.百钱买百鸡

#include

/**

百钱买百鸡,类似1,2,5凑100银币问题

*/

int main2()

{

int i,j;//公鸡,母鸡个数

for(i=0; i<=20; i++)//公鸡

{

for(j=0; j<=33; j++)//母鸡

{

if( (15*i + 9*j + (100-i-j)) == 300)

{

printf("公鸡%d,母鸡%d,小鸡%d\n", i, j, 100-i-j);

}

}

}

}

//1,2,5凑100银币问题

int main3()

{

int count = 0;//情况数

int i,j;//5分个数,2分个数

for(i=0; i<=20; i++)//5分个数

{

for(j=0; j<=50; j++)//2分个数

{

if( ( 5*i + 2*j ) <= 100 )

{

count++;

printf("%d: 5分%d个,2分%d 个,1分%d个\n", count, i, j, 100-5*i-2*j);

}

}

}

}

//8.一维数组的最大值、最小值、平均值

#include

#define N 10//宏定义常量

int main()

{

int i;//下标索引

int max, min;

double sum = 0;//累加和

int a[N] = {58, 58, 96, 100, 25, 55, 66, 88, 99, 77};

max = a[0];//假设第一个最大

min = a[0];//假设第一个最小

for(i=1; i

{

if(a[i] > max)//比最大值还大

max = a[i];//你才是最大

if(a[i] < min)//比最小值还小

min = a[i];//你才是最小

sum += a[i];

}

printf("max=%d, min=%d\n", max, min);

printf("average = %.2lf\n", sum/N);

}

//9.二维数组的最大值、最小值、平均值

#include

int main()

{

int i; //第几行

int j; //第几列

int a[3][4] = { {1,2,3,4}, {5,-6,7,8}, {9,19,39,0}};

int max = a[0][0];//假设你最大

int min = a[0][0];//假设你最小

double average;//平均值

double sum = 0; //总和

for(i=0; i<3; i++)//必定3行

{

for(j=0; j<4; j++)//必定4列

{

printf("%5d ", a[i][j]);

sum += a[i][j];

if(a[i][j] > max)

max = a[i][j];

if(a[i][j] < min)

min = a[i][j];

}

printf("\n");

}

average = sum / (3*4);

printf("max=%d, min=%d, avg=%.2lf\n", max, min, average);

}

//10.二维数组转置

#include

//二维数组转置:行变列,列变行

int main()

{

int i; //第几行

int j; //第几列

int a[3][4] = { {1,2,3,4}, {5,-6,7,8}, {9,19,39,0}};

int b[4][3];

for(i=0; i<3; i++)

{

for(j=0; j<4; j++)

{

printf("%5d", a[i][j]);

}

printf("\n");

}

//矩阵转置

for(i=0; i<3; i++)

{

for(j=0; j<4; j++)

{

b[j][i] = a[i][j];

}

}

for(i=0; i<4; i++)

{

for(j=0; j<3; j++)

{

printf("%5d", b[i][j]);

}

printf("\n");

}

}//11.冒泡排序

#include

#define N 10//宏定义常量

int main()

{

int i;//下标索引

int j;

int tmp;//临时交换用

int a[N] = {58, 58, 96, 100, 25, 55, 66, 88, 99, 77};

//外层循环一定是N-1

for(i=0; i

{

//两两交换,大的往后走

for(j=0; j

{

//交换

if(a[j] > a[j+1])

{

tmp = a[j];

a[j] = a[j+1];

a[j+1] = tmp;

}

}

}

for(i=0; i

{

printf("%d ", a[i]);;

}

printf("\n");

}

//12.结构冒泡排序

#include

//结构定义,用户自定义类型

typedef struct student{

char sno[20];//学号

char name[20];//姓名

int age;//年龄

char gender;//性别

char tel[20];//电话

};

int main()

{

int i;

int j;

double sum = 0;

struct student tmp;//两两交换临时用;

//结构数组

struct student team[5];

for(i=0; i<5; i++)

{

printf("请输入第%d个队员的信息:\n", i+1);

scanf("%s %s %d %c %s", team[i].sno, team[i].name, &team[i].age, &team[i].gender, team[i].tel);

}

//按年龄冒泡排序

for(i=0; i<5; i++)

{

for(j=0; j<5-i-1; j++)

{

//两两交换

if(team[j].age > team[j+1].age)

{

tmp = team[j];

team[j] = team[j+1];

team[j+1] = tmp;

}

}

}

//取值

printf("%-12s %-10s %-5s %-5s %-15s\n", "学号", "姓名", "年龄", "性别", "电话");

for(i=0; i<5; i++)

{

printf("%-12s %-10s %-5d %-5c %-15s\n", team[i].sno, team[i].name, team[i].age, team[i].gender, team[i].tel);

}

}

//13.结构数组找年龄最大值

#include

//结构定义,用户自定义类型

typedef struct student{

char sno[20];//学号

char name[20];//姓名

int age;//年龄

char gender;//性别

char tel[20];//电话

};

int main()

{

int i;

struct student tmp;//找最大临时用

//结构数组

struct student team[5];

for(i=0; i<5; i++)

{

printf("请输入第%d个队员的信息:\n", i+1);

scanf("%s %s %d %c %s", team[i].sno, team[i].name, &team[i].age, &team[i].gender, team[i].tel);

}

//取值

printf("%-12s %-10s %-5s %-5s %-15s\n ", "学号", "姓名", "年龄", "性别", "电话");

for(i=0; i<5; i++)

{

printf("%-12s %-10s %-5d %-5c %-15s\ n", team[i].sno, team[i].name, team[i].age, team[i].gender, team[i].tel);

}

//找学号最大的那一个

tmp = team[0];

for(i=1; i<5; i++)

{

if(strcmp(team[i].sno,tmp.sno) >

0 )

{

tmp = team[i];

}

}

printf("学号最大的队员如下:\n");

printf("%-12s %-10s %-5d %-5c %-15s\ n", tmp.sno, https://www.360docs.net/doc/fa12337756.html,, tmp.age, tmp.gender, tmp.tel);

}

//14.文件读写

#include

#include

//结构定义,用户自定义类型

typedef struct student{

char sno[20];//学号

char name[20];//姓名

int age;//年龄

char gender;//性别

char tel[20];//电话

};

//文件读写int main()

{

struct student * s, * p1;//个数未知

FILE * fp;

int i, n = 0;

char buf[1024];//fgets缓冲区

//打开文件

fp = fopen("e:\\test.txt", "r");

while(fgets(buf, 1024, fp) != NULL)

n++;

fclose(fp);

//指向一个可以存储n个student结构的内存空间

s = (struct student *)malloc(sizeof(struct student) * n);

p1 = s;//不要动头位置s的值

//打开文件

fp = fopen("e:\\test.txt", "r");

for(i=0; i

{

//从文件中读入一行

fscanf(fp, "%s %s %d %c %s", p1->sno, p1->name, &p1->age, &p1->gender, p1->tel);

p1++;

}

fclose(fp);

p1 = s;

for(i=0; i<3; i++)

{

printf("%s %s %d %c %s\n", p1->sno, p1->name, p1->age, p1->gender, p1->tel);

}

free(s);

}

//15.输入三角形三边长计算周长和面积#include

#include

int main()

{

double area,perimeter,s,a,b,c;

printf("请输入三边长a b c:");

scanf("%lf%lf%lf",&a,&b,&c);

if((a+b>c) && (a+c>b) && (b+c>a))

{

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

perimeter=a+b+c;

printf("area=%.2f,perimeter=%.2f\ n",area,perimeter);

}

else

{

printf("三边长无法构成三角形。

\n");

}

return 0;

}

//16.输入年份和月份输出对应那一月的天数,要处理闰年

#include

int main()

{

int year,month;

int leap =0;

scanf("%d %d",&year,&month);

if((year %4==0 && year %100 !=0) ||

year %400 ==0) //闰年2月29天

{

leap=1;

}

switch(month)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:printf("31");break;

case 4:

case 6:

case 9:

case 11:printf("30");break;

case 2:printf("%d",28+leap);break;

default:printf("error");break;

}

return 0;

}

//17.1,2,5分硬币问题

#include

int main()

{

int sum = 0;

for(int i=0; i<=20; i++)//5分

{

for(int j=0; j<=50; j++)//2分

{

if(5*i + 2*j <= 100)

sum++;

else

break;

}

}

printf("%d\n", sum);

}

//18.100到200所有的素数

#include

int main()

{

int i,j,n;

//外层

for(i=100; i<=200; i++)

{

n = i;

//内层

for(j=2;j<=n-1;j++)

{

if(n%j == 0)

break;//不是素数

}

if(j==n)//没找到

printf("%d是素数\n", n);

else

printf("%d不是素数\n", n);

}

}

//19.输入一个数n,计算12+22+32+…+n2 #include

int main()

{

int sum = 0;

int i, k;

scanf("%d", &k);

i = 1;

while(i <= k)

{

sum = sum + i * i;

i++;

}

printf("sum = %d\n", sum);

}

//20.指针交换

//定义一个方法swap()通过指针交换两个整数,并在main()中调用

#include

void swap(int *pa, int *pb){

int tmp = *pa;

*pa = *pb;

*pb = tmp;

}

int main()

{

int a = 3;

int b = 5;

int *pa = &a;

int *pb = &b;

swap(pa, pb);

printf("a=%d, b=%d\n", a, b); }

相关主题
相关文档
最新文档