当前位置:首页 » 编程语言 » triec语言

triec语言

发布时间: 2022-09-17 21:02:31

1. 求一个中级的c语言程序,要有详细解释。

这说的什么啊,建议你提点要求。#include<stdio.h>
#define N 3
void main()
{
int n,a[1000],*p,*ps,i,tuichu=0,num=0;/*数组a用来存放状态值,只有0和1,当元素为0时说明该人已经退出,为1是说明还在圈内。即对人进行编号,编完号后当每个人对应一个id,故a数组的容量大小为1000,输入的人数应小于1000*。变量tuichu用来记录退出的人数,变量num是用来做1到3的计数的,n是总人数*/
p=a; //p指向了数组a的首地址
ps=a; //ps指向了数组a的首地址
printf("请输入人数<小于1000>:");
scanf("%d",&n);//输入人数
for(i=0;i<n;i++,p++)//对数组a中的元素循环置1
*p=1;//
p=ps;//让指针p重新指向数组a的首地址
while(tuichu!=n-1) //当退出人数为总人数-1时退出循环
{
if(*p==1) //如果数组a中的元素为1,即相对应id的人没有退出,则num计数
num++;
if(num==N) /*如果计数变量的值为N时,则对相应数组的位置置0,对计数变量清零,退出人数加一*/ {
*p=0;
num=0;
tuichu++;
}
p++; //指针p指向当前所指的下一个元素
if(p==(ps+n)) /*当p指向数组的最后一个元素时,让p重新指向数组a的首地址*/
p=ps;
}
p=ps;//指针p指向数组a的首地址
for(i=0;i<n;i++,p++)//循环找出最后一个数组元素为1的位置并输出
{
if(*p==1)
{
printf("留下的最后一个人是第%d个\n",p-ps+1);
break;
}

}

}
上面的代码是我给一个提问题的注释的,你可以看看。

2. 一道c语言的问题 求大神帮忙 解答一下!!!!!

#include <stdio.h>

#include<math.h>

int main(int argc, const char * argv[])

{

double loan,rate,money;

int i,month;

scanf("%lf%lf",&loan,&rate);

for (i=5; i<=30; i++) {

month=12*i;

money=(loan*rate*(1+rate)*pow(1+rate, month))/(pow(1+rate, month)-1);

printf("还款年限:%d 月还款:%lf\n",i,money);

}

return 0;

}
是这样么?

输入10000 0.01
输出:
还款年限:5 月还款:224.668922

还款年限:6 月还款:197.456944

还款年限:7 月还款:178.292601

……………………

3. 统计文本文件中英文单词的出现次数用C语言

定义一个结构体数组,结构体里面两个元素,一个是该单词的个数,一个是该单词的拼写
然后去读文章,以非英文字母作判断,截取单词,然后和结构体数组比较,如果是新单词则放入一个新结构体中,个数设为1,如果该单词已存在,则把该结构体个数+1,最后比较个个结构的个数进行排序即可。

4. 关于C语言的问题:1 3 6 12 9 3 6 12 9 3 6 12 9,怎么把循环的部分提取出来,并统计个数

需要用到Trie树,但是我只用C#实现过。

5. c语言中输入单词 统计其在文本出现的次数

用string读入,之后用字典树trie的数据结构,trie的每个节点数据类型的struct中加一个计数的变量即可统计,之后再按顺序输出即可,时间复杂度理想状态下是o(n),n是字母个数。=
=实在没时间写了,你要是不想自己写,找个标准的trie一改就好了。。

6. c语言编程 实现ip地址查找 方法用二进制trie

不知道您有没有学习过计算机网络。如果没有,下面简单介绍一下IP地址和掩码。
IP地址是32位的,也就是4字节。取值可以任意。
掩码也是32位的,一般建议前面的位都为1,后面的位都为0。所以本题:
(1)只要是32位的都是有效的。
(2)判断是否全1后面接全0.
(3)如果掩码的前n位为1,那么此IP所在网络全部有效IP地址是此IP地址的前n位不变,后面的位从全0到全1,比如IP地址为1.1.1.1掩码为FFFF0000,那么此IP地址所在网络的全部有效IP地址是从1.1.0.0到1.1.255.255。
(4)两个IP地址都与掩码进行二进制与,看得到的结果是否相同,如果相同则在同一子网中,否则不在同一子网中。这个用c很容易实现。

7. 求一个实现简单的英汉词典(30词左右)c++的C语言程序

字典最快速的实现方法是trie tree。
这个树是专门用来实现字典的。但是trie tree的删除操作比较麻烦。用二叉查找树可以实现,速度也可以很快。AVL tree只不过是平衡的二叉树,在字典这个应用上没有客观的速度提升,因为字典不会产生极端化的二叉树(链表)。
下面是我的二叉查找树的代码。二叉查找树的优点是实现容易,而且它的inorder traverse既是按照字母顺序的输出。
//binary search tree, not self-balancing

//by Qingxing Zhang, Dec 28,2009. prep for google interview

#include <iostream>
using namespace std;

struct BST
{
int data;
BST *left;
BST *right;
};

//runtime: O(logn) on average, O(n) worst case
bool search(BST *&root, int key)//return false if the key doesn't exist
{
if(root==NULL)
return false;
if(key < root->data)
return search(root->left,key);
else if(key > root->data)
return search(root->right,key);
else
return true;
}

//runtime: O(logn)on average, O(n) worst case
bool insert(BST *&root, int key)//return false if the key already exists
{
if(root==NULL)
{
BST *node = new BST;
node->data = key;
node->left = node->right = NULL;
root = node;
return true;
}
else if(key < root->data)
return insert(root->left,key);
else if(key > root->data)
return insert(root->right,key);
else
return false;
}

//runtime:O(logn) on average, O(n) worst case
bool remove(BST *&root,int key)//return false if the key doesn't exist.
{
if(root==NULL)//no such key
return false;
else if(key < root->data)
return remove(root->left,key);
else if(key > root->data)
return remove(root->right,key);
else//node found
{
if((root->left==NULL)&&(root->right==NULL))//no child(leaf node)
{
BST *tmp = root;
root = NULL;
delete tmp;
}
else if((root->left==NULL)||(root->right==NULL))//one child
{
BST *tmp = root;
if(root->left==NULL)
root = root->right;
else
root = root->left;
delete tmp;
}
else//two children:replace node value with inorder successor and delete that node
{
BST *tmp = root->right;
while(tmp->left!=NULL)
tmp = tmp->left;
int tmpdata = tmp->data;
remove(root,tmpdata);
root->data = tmpdata;
}
return true;
}
}
//runtime:O(n)
void inorder(BST *&node)
{
if(node!=NULL)
{
inorder(node->left);
cout << node->data << " ";
inorder(node->right);
}
}
//runtime:O(n)
void preorder(BST *&node)
{
if(node!=NULL)
{
cout << node->data << " ";
preorder(node->left);
preorder(node->right);
}
}
//runtime:O(n)
void postorder(BST *&node)
{
if(node!=NULL)
{
postorder(node->left);
postorder(node->right);
cout << node->data << " ";
}
}

int main()
{
bool b;
BST *root = NULL;
b = insert(root,1);
b = insert(root,3);
b = insert(root,7);
b = insert(root,5);
b = insert(root,77);
b = insert(root,10);
b = insert(root,4);
b = insert(root,13);

//inorder
cout << "In-order:";
inorder(root);
cout << endl;
//preorder
cout << "Pre-order:";
preorder(root);
cout << endl;
//postorder
cout << "Post-order:";
postorder(root);
cout << endl;
// search for 7
if(search(root,7))
cout << "7 found!" << endl;
else
cout << "7 doesn't exist!" << endl;

b = remove(root,7);
cout << "----------------" << endl;

//inorder
cout << "In-order:";
inorder(root);
cout << endl;
//preorder
cout << "Pre-order:";
preorder(root);
cout << endl;
//postorder
cout << "Post-order:";
postorder(root);
cout << endl;

if(search(root,7))
cout << "7 found!" << endl;
else
cout << "7 doesn't exist!" << endl;

return 0;
}

8. C语言统计数组中比邻元素小的数组元素的个数

#include <stdio.h>

int main()

{

int n, i;

int r[10];

int count = 0;

scanf("%d", &n);

if (n <= 10) {

for (i = 0; i < n; i++) {

scanf("%d", &r[i]);

}

for (i = 0; i < n; i++) {

if (i == 0 && r[i] < r[i + 1]) {

count++;

}

else if (i == n - 1 && r[i] < r[i - 1]) {

count++;

}

else if (i > 0 && i < n - 1 && r[i] < r[i - 1] && r[i] < r[i + 1]) {

count++;

}

}

}

printf("count=%d", count);

return 0;

}

9. C语言数据类型问题

#include"stdio.h"
#include<string.h>
intmain()
{
chara[10],b[100];
printf("你好!你是? ");
scanf("%s",&a);
printf("你好%s,我是聊天机器人jiy 您想要我为您做些什么? ",a);
scanf("%s",&b);
//switch('b')
//{
// case'吃':
// printf("饭桶");
// break;
// default:
// printf("大爷,请您不要输火星上的阿拉伯数字! ");
//}
if(strcmp(b,"吃")==0) //汉字占两个字节,没法作为一个字符用单引号引用,只能双引号作为一个字符串来看.
printf("饭桶! ");
else
printf("大爷,请您不要输火星上的阿拉伯数字! ");
return0;
}

10. 错误error C2440: “return”: 无法从“void *”转换为“trie”

trie* trie_new()
{
return (trie*)calloc(sizeof(trie_t), 1);
}

热点内容
微信里的密码和账号在哪里 发布:2025-01-11 22:46:04 浏览:750
java字符串个数统计 发布:2025-01-11 22:45:05 浏览:541
完美国际2捏脸数据库 发布:2025-01-11 22:45:04 浏览:279
php淘宝互刷平台源码 发布:2025-01-11 22:43:49 浏览:215
剑侠情缘缓存怎么清理 发布:2025-01-11 22:33:56 浏览:316
win7旗舰版怎么设置密码 发布:2025-01-11 22:21:09 浏览:144
被害人访问 发布:2025-01-11 22:06:24 浏览:366
朋友圈上传长视频方法 发布:2025-01-11 22:01:41 浏览:357
我的世界ice服务器被炸罚款 发布:2025-01-11 21:54:36 浏览:725
linuxphpini配置 发布:2025-01-11 21:54:35 浏览:481