001:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
#include<stdio.h>
#include<string.h>
int main() {
char str[100];
int num = 0;
int word = 0;
gets(str);
for (int i = 0; str[i]!= '\0';i++) {
if (str[i]==' ') {
word = 0;
}else if(word==0){
word = 1;
num++;
}
}
printf("%d", num);
//使得dos界面不闪屏
int in;
scanf("%d", &in);
return 0;
}
002:函数指针的应用:输入两个整数,当用户输入1,输出两个数的最大值,当用户输入2,输出两个数的最小值
#include<stdio.h>
int main() {
int max(int, int);
int min(int, int);
int(*p)(int, int);
int a, b, c, n;
printf("输入两个整数\n");
scanf("%d", &a);
scanf("%d", &b);
printf("输入操作模式:1 求最大值 2 求最小值");
scanf("%d", &n);
if (n == 1) {
p = max;
}
else if(n==2) {
p = min;
}
else
{
return;
}
c = (*p)(a, b);
printf("c=%d", c);
//使得dos界面不闪屏
int in;
scanf("%d", &in);
return 0;
}
int max(int x,int y) {
return (x > y ? x : y);
}
int min(int x,int y) {
return (x < y ? x : y);
}
003:建立动态数组,输入5个学生的成绩,另外用一个函数检查其中有无低于60分,输出不及格的成绩。
#include<stdio.h>
#include<stdlib.h>
int main() {
void check(int * score);
int *pl;
int i;
pl = (int *)malloc(5 * sizeof(int));
for (i = 0; i < 5;i++) {
scanf("%d", pl + i);
}
check(pl);
//使得dos界面不闪屏
int in;
scanf("%d", &in);
return 0;
}
void check(int *p) {
printf("不及格的成绩:\n");
for (int i = 0; i < 5; i++) {
if (p[i] < 60) {
printf("%d\n", p[i]);
}
}
}
004:使用结构体建立简单的静态链表并输出
//建立简单的静态链表
#include<stdio.h>
struct Student {
int num;
float score;
struct Student *next;
};
int main() {
struct Student a, b, c;
struct Student *head;
struct Student *p;
a.num = 100001;
a.score = 89.5;
b.num = 100002;
b.score = 90.5;
c.num = 100003;
c.score = 85;
head = &a;
a.next = &b;
b.next = &c;
c.next = NULL;
p = head;
do {
printf("%1d%5.1f\n", p->num, p->score);
p = p->next;
} while (p != NULL);
//使得dos界面不闪屏
int in;
scanf("%d",&in);
return 0;
}
005:使用结构体建立动态链表并输出
//建立简单的动态链表
#include<stdio.h>
#include<stdlib.h>
#define Len sizeof(struct Student)
struct Student {
long num;
float score;
struct Student *next;
};
int n;//定义节点个数全局变量
struct Student* creat() {
n = 0;
struct Student *head;
struct Student *p1, *p2;
p1 = p2 = (struct Studenr *)malloc(Len);//开辟一个新的单元
scanf("%d%f", &p1->num, &p1->score);//输入第一个节点
head = NULL;
while (p1->num != 0) {
n = n + 1;
if (n == 1) {
head = p1;
}
else
{
p2->next = p1;
}
p2 = p1;
p1 = (struct Student*)malloc(Len);
scanf("%d%f", &p1->num, &p1->score);
}
p2->next = NULL;
return head;
}
int main() {
struct Student *pt;
pt = creat();
printf("num:%d\nscore:%f\n", pt->num, pt->score);
//使得dos界面不闪屏
int in;
scanf("%d", &in);
return 0;
}
006: