1.运用结构体
#include <stdio.h>
typedef struct
{
char name[20]; /* 姓名 */
int height; /* 身高 */
float weight; /* 体重 */
long schols; /* 奖学金 */
}student;
void hiroko(student* std)
{
if (std->height < 180) std->height = 180;
if (std->weight > 80) std->weight = 80;
}
int main(void)
{
student sanaka = { "Sanaka", 175, 60.5, 70000 };
hiroko(&sanaka);//结构体要进行地址传递
printf("姓名 = %s\n", sanaka.name);
printf("身高 = %d\n", sanaka.height);
printf("体重 = %f\n", sanaka.weight);
printf("奖学金 = %ld\n", sanaka.schols);
}
2.链表操作
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct node{
int n;
struct node *next;
};
int main(){
struct node *h;
h=(struct node*)malloc(sizeof(struct node*));
h->n=0;
h->next=NULL;
struct node *p;
p=(struct node*)malloc(sizeof(struct node*));
p->next=h->next;
h->next=p;
p->n=1;
printf("%d",p->n);
}
3.九九乘法表
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=9;i++) // 外循环控制行
{
for(j=1;j<=i;j++) // 内循环控制内容
{
printf("%d*%d=%d ",j,i,j*i);
}
printf("\n");
}
return 0;
}
4.判断1000年—2000年之间的闰年
#include<stdio.h>
int main()
{
int year = 0;
for (year = 1000; year <= 2000; year++)
{
if (year % 4 == 0)
{
if (year % 100 != 0)
{
printf("%d ",year);
}
}
if (year % 400 == 0)//不能用else if,因为year%4要是成立,程序就不会跑到else if这里
{
printf("%d ", year);
}
}
return 0;
}
5.输出1~100之间的奇数
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 100; i++)
{
if (i % 2 == 1)
{
printf("%d ", i);
}
}
return 0;
}
6.在一个有序数组中查找具体的某个数字n
#include<stdio.h>
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int k = 7;
int left = 0;
int right = 9;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] > k)
{
right = mid - 1;
}
else if (arr[mid] < k)
{
left = mid - 1;
}
else
{
printf("找到了,下标是:%d\n", mid);
break;
}
if (left>right)
{
printf("找不到\n");
}
}
return 0;
}
7、编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登陆成功,如果三次均输入错误,则退出程序)
#include<stdio.h>
int main()
{
int i = 0;
char password[20] = { 0 };
for (i = 0; i < 3; i++)
{
printf("请输入密码:");
scanf("%s", password);
if (strcmp(password, "123456") == 0)
{
printf("登陆成功\n");
break;
}
else
{
printf("密码错误,请重新输入!\n");
}
if (i == 3)
{
printf("三次密码错误,退出程序\n");
}
}
return 0;
}
8.猜数字游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("*********************************\n");
printf("********** 1.play **********\n");
printf("********** 0.exit **********\n");
printf("*********************************\n");
}
void game()
{
int ret = rand()%100 + 1;
int guess = 0;
while (1)
{
printf("请输入猜的数字:");
scanf("%d", &guess);
if (ret < guess)
{
printf("猜大了\n");
}
else if (ret>guess)
{
printf("猜小了\n");
}
else
{
printf("恭喜您,猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择\n");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("选择错误,请重新输入!\n");
break;
}
}while (input);
return 0;
}
9.关机小程序
#include<stdio.h>
int main()
{
char input[20] = { 0 };
system("shutdow -s -t 60");
again:
printf("请注意,您的电脑将在一分钟内关机,如果输入:我是猪,就取消关机\n");
scanf("%s", input);
if (strcmp(input, "我是猪") == 0)
{system("shutdown -a");
}
else
{
goto again;
}
return 0;
}
10.打印100~200之间的素数(递归)
#include<stdio.h>
int is_prime(int i)
{
int j = 0;
for (j = 2; j <i; j++)
{
if (i%j == 0)
return 0;
}
return 1;
}
int main()
{
int i = 0;
//int count = 0;
for (i = 100; i <= 200; i++)
{
if (is_prime(i) == 1)
{
//count++;
printf("%d ", i);
}
}
//printf("\ncount = %d\n", count);
return 0;
}
11.在屏幕上输出菱形
#include<stdio.h>
int main()
{
int i = 0;
int line = 0;
scanf("%d", &line);//15 7
//上
for (i = 0; i < line;i++)
{
int j = 0;
//打印一行
//打印空格
for (j = 0; j < line - i - 1; j++)
{
printf(" ");
}
//打印*
for (j = 0; j < 2 * i + 1; j++)
{
printf("*");
}
printf("\n");
}
//下
for (i = 0; i < line -1; i++)
{
int j = 0;
//打印空格
for (j = 0; j <= i; j++)
{
printf(" ");
}
//打印*
for (j = 0; j < 2 * (line - 1-i)-1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
12.编程打印直角杨辉三角形
main()
{int i,j,a[6][6];
for(i=0;i<=5;i++)
{a[i][i]=1;a[i][0]=1;}
for(i=2;i<=5;i++)
for(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i<=5;i++)
{for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
printf("\n");}
}
13.C语言表白代码?
第一个:
代码如下:
#include<stdio.h>//头文件
int main()//主函数入口
{
printf(" **** ****\n");//打印第一行
printf(" ********* *********\n");//打印第二行
printf("************* *************\n");//打印第三行
int i,j;//定义变量
for(i=0;i<3;i++)//打印4-6行,一共3行,因此i小于3
{
for(j=0;j<29;j++)//限制每行输出*的个数
{
printf("*");//这三行只打印*号,无空格输出
}
printf("\n");//打印完一行需要进行换行
}
for(i=0;i<7;i++) //打印7-13行,一共7行,因此i小于7
{
for(j=0;j<2*(i+1)-1;j++)//这个for循环和下面的for是并列的
{
printf(" ");//打印空格
}
for(j=0;j<27-i*4;j++)//读者可以带入几个数找出条件
{
printf("*");//打印*
}
printf("\n");
}
for(i=0;i<14;i++)//打印最后一行的*
{
printf(" ");//打印空格
}
printf("*\n") ;//打印*
return 0;
}
第二个:
代码如下:
#include<stdio.h>//头文件
#include<math.h>//为了引用pow函数
int main()//主函数入口
{
float y, x, z;//定义浮点型变量
printf("独时想起你\n");//提示语句
printf("落泪时想搂住你\n");//提示语句
printf("开心时想扑向你\n");//提示语句
printf("兴奋时想吻你\n");//提示语句
printf("一切尽在这三个字签名没有签上\n");//提示语句
printf("\n");//换行
for (double y = 2.5; y >= -1.6; y = y - 0.2)
{
for (double x = -3; x <= 4.8; x = x + 0.1)
{
//下面是个三目运算,读者请仔细看下,||这个是或
(pow((x*x + y*y - 1), 3) <= 3.6*x*x*y*y*y
|| (x>-2.4 && x<-2.1 && y<1.5 && y>-1)
|| (((x<2.5 && x>2.2) || (x>3.4 && x<3.7)) && y>-1 && y<1.5)
|| (y>-1 && y<-0.6 && x<3.7 && x>2.2)) ? printf("*") : printf(" ");
}
printf("\n");//换行
}
getchar();
return 0;//函数返回值为0
}