c语言讲解一道题,求讲解,马上考试了,不会啊~~

C语言考试技巧_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言考试技巧
||文档简介
北京交通大学研究生|
总评分4.3|
&&C​语​言​考​试​技​巧
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
你可能喜欢学习中碰到一道题 - C语言当前位置:& &&&学习中碰到一道题学习中碰到一道题&&网友分享于:&&浏览:0次学习中遇到一道题
字符串过滤
输入一个字符串,对字符串中非字母类型的字符(字母类型例如a、B、C等,非字母类型例如#、&、1等),&全部移除掉。输入的字符串中最少包含一个字母类型的字符。字符长度不超过50.
运行时间限制: 1&Sec------解决思路----------------------对于1sec的限制,用最笨的方法就行了。
字符串过滤
输入一个字符串,对字符串中非字母类型的字符(字母类型例如a、B、C等,非字母类型例如#、&、1等),&
全部移除掉。输入的字符串中最少包含一个字母类型的字符。字符长度不超过50.
运行时间限制: 1&Sec
#include&stdio.h&
#include&string.h&
#define&MAXLEN&51
char&buf[MAXLEN];
int&main(void)
scanf("%51s",&buf);
L&=&strlen(buf);
for&(i&=&0;&i&&&L;&i++)
if&(!((buf[i]&&=&'A'&&&&buf[i]&&=&'Z')&------解决思路----------------------&(buf[i]&&=&'a'&&&&buf[i]&&=&'z')))//非字母类型
memmove(buf&+&i,&buf&+&i&+&1,&L&-&i&+&1);
L&=&strlen(buf);
printf("%s\n",&buf);
//abc1def2ghi3
//abcdefghi
------解决思路----------------------#include&stdio.h&
#include&string.h&
int&main()
&&&&int&c;
&&&&while((c=getchar())!='\n')
if(isalpha(c))
putchar(c);
&&&&putchar('\n');
&&&&return&0;
------解决思路----------------------
#include&&stdio.h&
#include&&time.h&
int&main(void){
char&str[51];
int&i=0,j=0;
printf("输入字符:\n");
gets(str);
while((str[i]=str[j++])!='\0'){
if((str[i]&='a'&&&&str[i]&&='z')------解决思路----------------------&(str[i]&='A'&&&&str[i]&='Z')){
printf("%s",str);
使用i,j同时指向字符串,j负责不断符读取字符,i保存字符,
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有c语言的一道题,求解!!!!!!急急急急急!!!!!!__站长网
当前位置: >
c语言的一道题,求解!!!!!!急急急急急!!!!!!
问题:四级分制转换为百分制的规则如下:
编写程序:将输入的四级分制转换成相应的百分制,然后输出。
追问:要求用switch……输入“A+”时与输入“A”是一样的吗?……额……我是个初学者……还不太熟悉……
答案:#include "stdio.h"
#include "string.h"
#include "stdlib.h"
void main()
char score[5];
printf("请输入您的四级分制:\n");
scanf("%s",&score);
if(strcmp(score,"A+")==0)
printf("转化为百分制后为:100\n");
else if(strcmp(score,"A")==0)
printf("转化为百分制后为:90\n");
else if(strcmp(score,"A-")==0)
printf("转化为百分制后为:85\n");
else if(strcmp(score,"B+")==0)
printf("转化为百分制后为:80\n");
else if(strcmp(score,"B")==0)
printf("转化为百分制后为:75\n");
else if(strcmp(score,"B-")==0)
printf("转化为百分制后为:70\n");
else if(strcmp(score,"C")==0)
printf("转化为百分制后为:60\n");
else if(strcmp(score,"D")==0)
printf("转化为百分制后&60\n");
printf("\n请输入您的四级分制:\n");
scanf("%s",&score);
其他:用switch 依次选择就行了呗!
自己写写吧! #include &stdio.h&
#include &string.h&
void main(void)
char std[3];
scanf("%S",std);
swicth(std[0])
case 'A':if(str[1]=='+')
printf("100\n");
else if(str[1]=='\0')
printf("90\n");
printf("85\n");
case 'B':if(str[1]=='+')
printf("80\n");
else if(str[1]=='\0')
printf("75\n");
printf("70\n");
case 'C':printf("60\n");
case 'D':printf("&60\n");
> 疑问解答:
如果你遇到什么编程难题:
请访问 试试求问一道题_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:445,284贴子:
求问一道题收藏
输入是两个很大的整数,以及运算符,要求计算出相加/减的结果注:这里的整数很大,是int,long所无法表示的数。
unsigned long或者long long
用字符串做就好
我的做法比较笨大数加法char s[1000] = {0};//输入的第一个数
位数限制MAX = 1000 char s2[1000] = {0};//第二个数 char s3[1001] = {0};//最后得到的结果存储 gets(s);//输入第一个数 gets(s2);//输入第二个数 int len1 = strlen(s);//第一个数的长度 int len2 = strlen(s2);//第二个数的长度
int len3 = len1&len2?len1:len2;//比较大的数的长度int len4 = len1&len2?len2:len1;//小的数的长度 if ( len1!=len2)//如果2数长度不相同 则填充0 使之相同
{ char *p;p = len1&len2?s2:s;
char s4[len4];
for(int i = 0; i & len4 ; i++)
s4[i] = p[i];
for( i = len3-1; i &=0; i--)
if(i &= len3 - len4-1)p[i] = '0';//填充0elsep[i] = s4[i+len4-len3];
}//填充完毕 2数长度相同
}int add = 0;//进位//2数的长度都为 len3//所以两数相加的和长度为len3+1for(i = len3-1;i&=0;i--){
temp = s[i]-'0' + s2[i] -'0'+//平时 你做加法的方式
s3[i+1] = temp%10 + '0';
add = temp/10;
}s3[0] = temp/10+'0';if(s3[0] == '0')//如果最前面一位为0
以空格代替 输出来好看点s3[0] = ' ';
printf(&\n&);printf(& %s\n+%s\n------------\n%s\n&,s,s2,s3);
简单的讲比如俩数和1234我的做法 把他们都变成相同长度的字符串然后从个位开始加
8+4 = 1212%10 = 2
2就是结果的个位 进位 add = 12/10 = 1下一步 7+3+1(进位) = 11所以结果倒数第二位为 11%10 = 1
进位 1依次类推就好了所以结果的长度最好比大数的长度大1 避免有进位的可能
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或C语言的一道题,看不懂题意,求大神讲解,谢谢啦_百度知道
C语言的一道题,看不懂题意,求大神讲解,谢谢啦
/zhidao/wh%3D450%2C600/sign=b6f4c4db222dd42a5f5c09af360b1fe364ded2e738ad4e6a5.hiphotos.hiphotos://b.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="/zhidao/pic/item/b21bb051fe364ded2e738ad4e6a5://b.com/zhidao/wh%3D600%2C800/sign=e69a4f7a1d4c510fae91ea1cbb051fe364ded2e738ad4e6a5;<a href="http.baidu.jpg" esrc="http://b.baidu&nbsp.hiphotos
提问者采纳
number),&number););
continue,2;i++){
if(number%i==0)
sum+=i;%d&;
}}if(sum==number)printf(&,i;scanf(&quot。&%d是完数;printf(&quot,sum=0,i&lt,这个数就是完数了,3 它们的和等于这个数本身;for(i=1就比如6=1+2+3:&quot。请输入一个正整数。有三个因子(不包括6)分别是1
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
其他类似问题
为您推荐:
其他1条回答
#include &lt,x);
if(sum==x)
printf(&quot,它有约数1、3; x&temp++)
if(x%temp==0)
sum= sum+temp,),其余3个数相加;
printf(&quot、7。第二个完全数是28、4,除去它本身28外,1+2+3=6、6;
for(temp=1;scanf(&quot,n&&#92; x++)
sum= 0.h&gt、28,它有约数1,其余5个数相加1+2+4+7+14=28;,temp。代码;%d&quot,则称该数为“完全数”;;%d
&quot如果一个数恰好等于它的因子之和、2,除去它本身6外;x、2;temp&lt, &num);
for(x=1;void main(){int x、14。第一个完全数是6
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言讲解 的文章

 

随机推荐