c语言数独自动求解求解,两道题,求大神们帮忙

只需一步,快速开始
扫一扫,访问微社区
查看: 865|回复: 6
基础测试题c语言有道题写到最后不知改怎么输出,求大神!
该用户从未签到黑马币技术分主题
中级黑马, 积分 597, 距离下一级还需 403 积分
中级黑马, 积分 597, 距离下一级还需 403 积分
题目:编程实现对键盘输入的英文名句子进行加密。
用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。
比如245a95n加密后是245bcd95opq。(C语言)
我现在写的代码是这样的:
&p&
#include &stdio.h&&/p&&p&int main()
{
//提示用户输入句子,定义一个字符串数组并把用户输入的句子传入
printf(&请输入英文句子:\n&);
scanf (&%s&, sentence);
int i = 0;
//遍历字符串中每个字母
for(i = 0; i & strlen(sentence); i++)&&
{
&&//把字母赋给一个字符变量
&&char w = sentence[i];
&&char fin[i];
&&
&&//如果'w'在a到w或A到W之间 就输出他后面三个 ,因为w后面有xyz所以可以正常输出后面三个
&&if( (w &= 'a' && w &= 'w') || (w &='A' && w &= 'W') )
&&{
& &fin[1] = w+1;
& &fin[2] = w+2;
& &fin[3] = w+3;
&&}
&&else if( w=='x' || w=='X')
&&{
& &fin[1] = w+1;
& &fin[2] = w+2;
& &fin[3] = w+3-26;&&
&&}
&&
&&else if( w=='y' || w=='Y')
&&{
& &fin[1] = w+1;
& &fin[2] = w+2-26;
& &fin[3] = w+3-26;
&&}
&&
&&else if( w=='z' || w=='Z')
&&{
& &fin[1] = w+1-26;
& &fin[2] = w+2-26;
& &fin[3] = w+3-26;&&
&&}
&&
&&//其他的原样输出
&&else& && && && && &&&
}&/p&&p&//输出
}&/p&复制代码写到最后发现不知该怎么输出,求大神指点!
因为后面有特殊情况,你没考虑周全,这是一个完整的代码
该用户从未签到黑马币技术分主题
中级黑马, 积分 462, 距离下一级还需 538 积分
中级黑马, 积分 462, 距离下一级还需 538 积分
因为后面有特殊情况,你没考虑周全,这是一个完整的代码
//编程实现对键盘输入的英文名句子进行加密。用加密方法为:
//当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变
#include &stdio.h&
int main()
{
& & & &&&
& & & & printf(&please input a string:&);
//每次从缓冲区读取一个字符,然后赋给c,!='\n'则进入循环
& & & & while((c=getchar())!='\n')
//获取字母使其+1,编程下一个字母
& & & & & & & & if(c&='A'&&c&='Y'||c&='a'&&c&='y')
& & & & & & & & {
& & & & & & & & & & & & c=c+1;
& & & & & & & & }
& & & & & & & & else&&if(c=='Z'||c=='z')
& & & & & & & & {
& & & & & & & & & & & & c=c-25;
& & & & & & & & }
//输出改变字母后的字符串
& & & & & & & & printf(&%c&,c);
//针对字符串内的字母进行处理,并输出
& & & & & & & & if(c&='B'&&c&='X'||c&='b'&&c&='x')
& & & & & & & & {& & & & & & & &&&
& & & & & & & & & & & & char a[2] = {c+1,c+2};
& & & & & & & & & & & & for(int i = 0;i&2;i++)
& & & & & & & & & & & & & & & & printf(&%c&,a[i]);
& & & & & & & & }
& & & & & & & &
& & & & & & & & else
& & & & & & & & {
//针对字符串内的特殊的字母进行处理,并输出
& & & & & & & & & & & & if(c=='Y'||c=='y')
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & char b[2] = {c+1,(c+2)-26};
& & & & & & & & & & & & & & & & for(int i = 0;i & 2; i++)
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & printf(&%c&,b[i]);
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & }
& & & & & & & & & & & & else& & & &
& & & & & & & & & & & & & & & & if(c=='Z'||c=='z')
& & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & char b[2] = {(c+1)-26,(c+2)-26};
& & & & & & & & & & & & & & & & & & & & for(int i = 0;i & 2; i++)
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & printf(&%c&,b[i]);
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & else if(c=='A'||c=='a')
& & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & char b[2] = {c+1,c+2};
& & & & & & & & & & & & & & & & & & & & for(int i = 0;i & 2; i++)
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & printf(&%c&,b[i]);
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & }
& & & & & & & & }
& & & & }
& & & & printf(&\n&);
& & & & return 0;&&
}
谢谢哥们儿&
该用户从未签到黑马币技术分主题
中级黑马, 积分 545, 距离下一级还需 455 积分
中级黑马, 积分 545, 距离下一级还需 455 积分
你这个思路逻辑上有问题,原字符串的长度有变化,length要做相应的处理。
该用户从未签到黑马币技术分主题
中级黑马, 积分 545, 距离下一级还需 455 积分
中级黑马, 积分 545, 距离下一级还需 455 积分
正确的思路应该是:当有输入且未到结尾时进行相关加密。
这样就可以不用考虑字符串长度变化带来的困扰了。
你可以再研究下,尽量自己解决,不行的话,给你代码
该用户从未签到黑马币技术分主题
初级黑马, 积分 74, 距离下一级还需 26 积分
初级黑马, 积分 74, 距离下一级还需 26 积分
最后的思路有问题啊,length要做处理啊
该用户从未签到黑马币技术分主题
中级黑马, 积分 429, 距离下一级还需 571 积分
中级黑马, 积分 429, 距离下一级还需 571 积分
我都没考虑到输入Zz的情况,直接输出c+1,c+2的
站长推荐 /4
我们一直在思考,怎样让一个教育机构看起来更有诚意。精品课程,优质师资,还是强大的服务体系,好像每个人心里都有不同的答案。过去的这些年,圈子变了心态变了,身边的朋友变了,就连那家卖盖浇饭的店都重新装修了
本课程主要讲解的是html+css,课程以Xhtml+css代码理论为基础,以项目实战为核心,让学完本课程的你能够轻松搞定各种网页布局、企业网站、电商网站、门户网站、网页常见活动页、专题页,还可以......
黑马论坛Andrid真正精华资源,受益Google-Andrid开发的大牛中级小菜鸟伙伴。一、精华级传智Android视频学习资源分享。二、Android新手篇入门分享。三、Android实战技术经验集.......
一帖在手,说走就走,小马驹们看过来~是不是有一种点招社招傻傻分不清楚赶脚?是不是有一种黑马论坛黑马报名系统傻傻分不清楚赶脚?是不是有一种先付费后付费傻傻分不清楚赶脚?莫要担心,雪姐来解释一下!
Powered by
Copyright &01:13 提问
求大神帮忙 C语言 LeetCode的 Two Sum问题
求大神帮忙。我run时显示Runtime Error,不知道问题在哪里。。
还有,我也不理解注释中的: * Note: The returned array must be malloced, assume caller calls free(). 这句是什么意思
Given an array of integers, find two numbers such that they add up to a specific target number.
The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.
You may assume that each input would have exactly one solution.
Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2
Subscribe to see which companies asked this question
Note: The returned array must be malloced, assume caller calls free().
int twoSum(int* nums, int numsSize, int target) {
int index1,index2;
for(i=0;i&numsSi++)
for(j=0;j&numsSj++)
if(nums[i]!=0 && nums[j]!=0)
if(nums[i]+nums[j]==target)
if(nums[i]&=nums[j])
index1=i+1;
index2=j+1;
index1=j+1;
index2=i+1;
printf("[%d,%d]",index1,index2);
按赞数排序
int* twoSum(int* nums, int numsSize, int target) {
int index1,index2;
for(i=0;i&numsSi++)
for(j=0;j&numsSj++)
if(nums[i]!=0 && nums[j]!=0)
if(nums[i]+nums[j]==target)
if(nums[i]&=nums[j])
index1=i+1;
index2=j+1;
index1=j+1;
index2=i+1;
printf("[%d,%d]",index1,index2);
int * arr = (int *)malloc(sizeof(int) * 2);
arr[0] = index1;
arr[1] = index2;
int main()
int nums[] = {2,7,11,15};
= twoSum(nums, 4, 9);
如果你的程序没有别的错,它和它的调用者应该是这样的
Note: The returned array must be malloced, assume caller calls free().
返回的数组必须被分配,假设调用者负责释放
470关注|145收录
259关注|834收录
326关注|244收录
其他相似问题
相关参考资料共有 611 人关注过本帖
标题:请大神帮我解决这几个问题
等 级:新手上路
&&已结贴√
&&问题点数:20&&回复次数:5&&&
请大神帮我解决这几个问题
//设计树结构的相关函数库,以便在程序设计中调用。
#include&stdio.h&
#include&stdlib.h&
typedef struct Node{
struct Node * L
struct Node * R
}BiTNode,*BiT//二叉树节点,二叉链表
typedef struct QueueNode{
struct QueueNode *
}LinkQueueN//队列中的每个节点
typedef struct
LinkQueueNode *
LinkQueueNode *
}LinkQ//队列
/* 队列的初始化 */
void InitQueue(LinkQueue *Q)
Q-&front = (LinkQueueNode *)malloc(sizeof(LinkQueueNode));
if(Q-&front != NULL){
Q-&rear = Q-&
Q-&front-&next = NULL;
}else printf(&分配空间失败!\n&);
/* 入队 */
void EnterQueue(LinkQueue *Q,BiTree x)
LinkQueueNode *NewN
NewNode = (LinkQueueNode *)malloc(sizeof(LinkQueueNode));
if(NewNode != NULL){
NewNode-&data =
NewNode-&next = NULL;
Q-&rear-&next = NewN
Q-&rear = NewN
/* 队列判空*/
int QueueIsEmpty(LinkQueue *Q)
if(Q-&front == Q-&rear)
else return 0;
void DeleteQueue(LinkQueue *Q,BiTree *x)
LinkQueueNode *p;
if(Q-&front == Q-&rear)
p= Q-&front-&
Q-&front-&next = p-&
if(Q-&rear == p)
Q-&rear = Q-&
/* 利用扩展先序遍历序列
  创建二叉链表*/
void CreateBiTree(BiTree *bt)
ch = getchar();
if(ch == '.') *bt = NULL;
*bt = (BiTree)malloc (sizeof(BiTNode));
(*bt)-&data =
CreateBiTree(&((*bt)-&Lchild));
CreateBiTree(&((*bt)-&Rchild));
/*先序递归遍历二叉树*/
void PreOrder(BiTree root)
if(root != NULL){
printf(&%c &,root-&data);
PreOrder(root-&Lchild);
PreOrder(root-&Rchild);
/*后序递归遍历二叉树 */
void PostOrder(BiTree root)
if(root != NULL){
PostOrder(root -& Lchild);
PostOrder(root -& Rchild);
printf(&%c &,root-&data);
void InOrder(BiTree root)
if(root != NULL){
InOrder(root-&Lchild);
printf(&%c &,root-&data);
InOrder(root-&Rchild);
/*&&&层序遍历
   对给定的二叉树进行层序遍历 */
void LayerOrder(BiTree root)
&&& BiTree *x;
&&& //这里要记得申请空间
&&& x = (BiTree *)malloc(sizeof(BiTree));
&&& if(x == NULL){
&&& printf(&内存分配失败!\n&);
&&& LinkQueue *Q;
&&& Q = (LinkQueue *)malloc(sizeof(LinkQueue));
&&& InitQueue(Q);
&&& EnterQueue(Q,root);
&&& while(!QueueIsEmpty(Q)){
&&& DeleteQueue(Q,x);
&&& printf(&%c &,(*x)-&data);
&&& if((*x)-&Lchild)EnterQueue(Q,(*x)-&Lchild);
&&& if((*x)-&Rchild)EnterQueue(Q,(*x)-&Rchild);
void&&countleaf(BiTree root,int&n)
{ if (root)
&&&&&countleaf(root-&Lchild,n);
&&&&&if(!root-&Lchild && !root-&Rchild)&&n++;
&&&&&countleaf(root-&Rchild,n);
void depth(BiTree root,int &dep)
{&&&int&&dep1,dep2;
&&& if(!root) dep=0;
&&& {depth(root-&Lchild,dep1);
&&&&&depth(root-&Rchild,dep2);
&&&&&dep=dep1&dep2?dep1+1:dep2+1;
int main(int argc , char **argv)
&&& int n=0,
&&& CreateBiTree(&root);
&&& printf(&先序递归遍历:\n&);
&&& PreOrder(root);
&&& printf(&\n&);
&&& printf(&中序递归遍历:\n&);
&&& InOrder(root);
&&& printf(&\n&);
&&& printf(&后序递归遍历:\n&);
&&& PostOrder(root);
&&& printf(&\n&);
&&& printf(&层序遍历:\n&);
&&& LayerOrder(root);
&&& printf(&\n&);
&&& depth(root,dep);
&&& printf(&深度dep=%d\n&,dep);
&&& countleaf(root,n);
&&& printf(&叶子结点数n=%d\n&,n);
&&& printf(&\n&);
&&& return 0;
错误提示:
(109) :error C2275: 'LinkQueue' : illegal use of this type as an expression
(109) : error C2065: 'Q' : undeclared identifier
(120) :error C2143: syntax error : missing ')' before '&'
(120) :error C2143: syntax error : missing '{' before '&'
(120) : error C2059: syntax error : '&'
(120) : error C2059: syntax error : ')'
搜索更多相关主题的帖子:
等 级:蜘蛛侠
帖 子:331
专家分:1433
简单说说:
虽然不知你程序,但是
void CreateBiTree(BiTree *bt)
ch = getchar();
if(ch == '.') *bt = NULL;
*bt = (BiTree)malloc (sizeof(BiTNode));
(*bt)-&data =
CreateBiTree(&((*bt)-&Lchild));
CreateBiTree(&((*bt)-&Rchild));
里面二叉树 分叉点没有和根连接起来
等 级:蜘蛛侠
帖 子:331
专家分:1433
简单说说:
虽然不知你程序,但是
void CreateBiTree(BiTree *bt)
ch = getchar();
if(ch == '.') *bt = NULL;
*bt = (BiTree)malloc (sizeof(BiTNode));
(*bt)-&data =
CreateBiTree(&((*bt)-&Lchild));
CreateBiTree(&((*bt)-&Rchild));
里面二叉树 分叉点没有和根连接起来
来 自:江西省赣州市于都县
等 级:业余侠客
帖 子:119
专家分:233
有点复杂的感觉
来 自:亲爱MM肚子里!
等 级:论坛游侠
帖 子:61
专家分:149
看都看不懂啊!
等 级:贵宾
威 望:58
帖 子:3838
专家分:11363
回复 3 楼 erty1001
总有那身价贱的人给作业贴回复完整的代码
版权所有,并保留所有权利。
Powered by , Processed in 0.023442 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved求c大神帮我看看这道题 关于循环嵌套的。_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:438,985贴子:
求c大神帮我看看这道题 关于循环嵌套的。收藏
.让程序要求用户输入一个大写字母,使用嵌套循环产生像下面这样的金字塔图案:
ABCBA ABCDCDAABCDEDCBA
这种图案要扩展到用户输入的字符。例如,前面的图案是在输入E时需要产生的。提示:使用一个外部循环来处理行,在每一行中使用三个内部循环,一个处理空格,一个以升序打印字母,一个以降序打印字母。
ABCBA这样的 我想不出最后的从上往下第二行开始的BA CBA DCBA 怎么写看了答案也理解不了
能教我怎么理解这类型的循环嵌套吗?
答案发一下,给你分析了一下
我看不懂最后一个循环。。我自己写的那个 第一行会产生两个A第一行的那个A是由第二个循环打印的那第三个循环是怎么不在第一行打印出什么的。。我一开始的想法是补空格。。结果很明显错得很离谱。。
为什么代码发不了的。。。
发了好几次都让删了。。。
嘿嘿#include &stdio.h&main(){int i,m,n;for(i=1;i&=5;i++){for(m=1;m&=i;m++)printf("%c",64+m);for(n=1;n&i;n++)printf("%c",64+i-n);printf("\n");}}
搞定了,嘿嘿
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或求各位大神,就差一道题了,帮忙解决一道C语言题目,谢谢啦
#include&&stdio.h&struct&student{&&&&char&szStuNo[30];&&&&&&&//&学号&&&&char&szName[30];&&&&&&&&//&姓名&&&&char&zhuanYe[30];&&&&&&&//&专业&&&&double&score[5];&&&&&&&//&&5门课程成绩&&&&double&avgS&&&//&平均成绩&&&&student(char&*&lpStuNo,&char&*&lpName,&char&*&lpzhuanYe)&&&&{&&&&&&&&sprintf(szStuNo,&lpStuNo);&&&&&&&&sprintf(szName,&lpName);&&&&&&&&sprintf(zhuanYe,&lpzhuanYe);&&&&}&&&&//&平均成绩&&&&void&getavagScore()&&&&{&&&&&&&&avgSocre&=&(score[0]&+&score[1]&+&score[2]&+&score[3]&+&score[4])/5;&&&&}&&&&//&输出学生信息以及分数&&&&void&printfStu()&&&&{&&&&&&&&printf(&学号&姓名&专业&5门成绩&平均成绩\n&);&&&&&&&&printf(&%s&%s&%s&%0.2lf&%0.2lf&%0.2lf&%0.2lf&%0.2lf&%0.2lf\n&,&&&&&&&&&&&&&&&&szStuNo,&szName,&zhuanYe,&score[0],&score[1],&score[2],&score[3],&&&&&&&&&&&&&&&score[4],&avgSocre);&&&&}};int&main(){&&&&student&stu(&2008&,&&zhangsan&,&&计算机专业&);&&&&printf(&请输入5门成绩:\n&);&&&&for&(int&i&=&0&;&i&&&5;&i++)&&&&{&&&&&&&&scanf(&%lf&,&&stu.score[i]);&&&&}&&&&stu.getavagScore();&&&&stu.printfStu();&&&&return&0;}运行结果如下:
为您推荐:
其他类似问题
扫描下载二维码}

我要回帖

更多关于 c语言求解线性方程组 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信