2018-16
//16和18题忘记当时做的对不对了,可以自己再康康。
//真题2018-16 编写程序:输入正整数n(1~10000),
//再输入n个正整数,找出这n个数中出现次数最多的数字,
//统计并输出其出现次数。
//例如1234,2345,3456中出现次数最多的数字是3和4,出现次数均为3次。
#include<stdio.h>
#include<stdlib.h>
#define N 10000
int main()
{
int n,i,j,count=0;
int n0,n1,n2,n3,n4,n5,n6,n7,n8,n9;
n0=n1=n2=n3=n4=n5=n6=n7=n8=n9=0;
printf("请输入一个数字:\n",n);
scanf("%d",&n);
int *c = (int*)malloc(n*sizeof(int));
for(i=0; i<n; i++){
scanf("%d",c+i);
}
for(i=0; i<n; i++){ //i表示每组数据
for(j=0; c[j]!='\0'; j++){ //j表示?
if(c[i]==c[j])
count++;
}
}
return 0;
}
2018-17
//真题2018-17
//输入字符串s和字符ch,在字符串s中找到所有的ch字符后删除,得到新的字符串并输出。
//要求通过编写用函数void delchar(char *s,char ch),实现将字符串s中的ch字符找到后删除的操作
void delchar(char *s, char ch){
int i=0,j;
while(s[i]!='\0'){
if(s[i] == ch){
for(j=i;s[j]!='\0';j++)
s[j] = s[j+1];
i--;//这里为啥要加一个i--呢,因为我发现如果是两个要删除的字符是连在一起的话,不加这一步操作就会漏删
}
i++;
}
printf("%s",s);
}
2018-18
//真题 2018-18
//要求:建立一个联系人联系簿,包含姓名、出生日期、电话三项
//出生日期包含年月日三项,要求用内嵌结构体实现。
//输入n个(小于8)联系人的信息存入联系簿,并按年龄大小由大到小输出
#include<stdio.h>
#define N 3
int main()
{
int i,j,k;
struct Data{
int year[N];
int month[N];
int day[N];
}birth;
struct Con{
char name[20];
char num[20];
struct Data birth;
}p[N];
struct Con temp;
for(i=0;i<N;i++)
scanf("%s %d %d %d %s", p[i].name, &p[i].birth.year[i], &p[i].birth.month[i], &p[i].birth.day[i], p[i].num);
for(i=0; i<N; i++){
k = i;
for(j=i; j<N; j++)
if(p[j].birth.year[j] > p[k].birth.year[k])
k = j;
temp = p[i];
p[i] = p[k];
p[k] = temp;
}
for(i=0; i<N; i++){
k = i;
for(j=i; j<N; j++)
if((p[j].birth.year[j] <= p[k].birth.year[k]) && (p[j].birth.month[j] < p[k].birth.month[k]))
k = j;
temp = p[i];
p[i] = p[k];
p[k] = temp;
}
for(i=0; i<N; i++){
k = i;
for(j=i; j<N; j++)
if((p[j].birth.year[j] <= p[k].birth.year[k]) && (p[j].birth.month[j] <= p[k].birth.month[k]) && (p[j].birth.day[j] <= p[k].birth.day[k]))
k = j;
temp = p[i];
p[i] = p[k];
p[k] = temp;
}
for(i=0; i<N; i++)
printf("%s %d %d %d %s", p[i].name, p[i].birth.year[i], p[i].birth.month[i], p[i].birth.day[i], p[i].num);
return 0;
}
/*
测试用例
zhang 2000 1 6
li 1997 3 4
*/
2018-25
//真题 2018-25
//编写函数,统计链表结点data域中出现的X结点个数
int find(LNode *h, int x){
LNode *p;
int count;
p = h->next;
while(p!=NULL){
if(p->data == x)
count++;
p = p->next;
}
return count;
}