c语言编程

这个题目,说实话,真心没有多大的兴趣编写。
数字选择完全可以用switch来做。
第一题,很简单,直接从0开始,判断左右2边的值是否相等就行。
第二题,网络上很多答案,
第三题,就是找一个数的平方,它的千位和百位一样,十位与个位一样,至于如果判断,很多方法。可以将每一位都赋给一个数,然后比较。当然还有简单的,除以100,然后与11取余,为0则千位与百位相等。十位与个位那不是更简单了吗?
第四题,就是加1乘以2,搞10次就行。
第五题,完全是for循环,或者直接用字符串搞定就行了。
没什么编写的兴趣,如果你自己编写了,无法编译通过。或者是程序存在逻辑问题,可以发到我邮箱,找时间帮你修修。邮箱地址看我资料

❷ 谁有java趣味编程100例,电子版的!

您好,提问者:
这本书貌似是没有PDF版本的,只有书店、网店有销售。

❸ c语言学习资料

要学好c语言,第一是看别人的源代码程序,第二是自己多写,一定要自己多内写,虽然很辛苦,容写一遍等于看三遍,只有多写你才能真正学会它。当然你先得看一些好的实例,才知道如何写。下面是我认为比较好的电子书,你用网络搜索一下,很多在csdn都可以免费下载。
1.经典教材:
谭浩强C程序设计(第2/3版)
谭浩强C程序设计题解.pdf (强烈推荐)
2.编程实例:
C语言精彩编程百例
C语言趣味程序百例精解 (强烈推荐)
C语言实用程序设计100例
C语言实例解析精粹(第二版)(220例,强烈推荐)
经典编程900例(C语言)
3.国外经典: (强烈推荐)
C和指针.pdf
C专家编程.pdf
C陷阱与缺陷
4.高级进阶
C高级实用程序设计.pdf(清华大学出版)(强烈推荐)
C语言高级实例解析
高质量C/C++编程指南.doc

❹ C语言学习

要学好c/c++语言,第一是看别人的源代码程序,第二是自己多写,一定要自己多写,虽然很辛苦,但写一遍等于看三遍,只有多写你才能真正学会它。当然你先得看一些好的实例,才知道如何写。下面是我认为比较好的电子书,你用网络搜索一下,很多在csdn上都可以免费下载。
1.经典教材:
谭浩强C程序设计(第2/3版) (强烈推荐)
谭浩强C程序设计题解.pdf (强烈推荐)
2.编程实例:
C语言精彩编程百例
C语言趣味程序百例精解 (强烈推荐)
C语言实用程序设计100例
C语言实例解析精粹(第二版)(220例,强烈推荐)
经典编程900例(C语言)
3.国外经典:(强烈推荐)
C和指针.pdf
C专家编程.pdf
C陷阱与缺陷
4.高级进阶
C高级实用程序设计.pdf(清华大学出版) (强烈推荐)
C语言高级实例解析
高质量C/C++编程指南.doc

❺ C/C++编程趣味题

妈妈的,虽然我程序写的很垃圾,还是把这道题给算出来的!

看在我费了这九牛二虎之力的份上,希望楼主多赏点分!!!

程序如下:
#include <vector>
#include <cstdio>
#include <ctype.h>
using namespace std;
#define maxsize 100

typedef int elemtype;
typedef struct sqstack sqstack;//由于sqstack不是一个类型 而struct sqstack才是

char ch[7]={'+','-','*','/','(',')','='};//把符号转换成一个字符数组
int f1[7]={3,3,5,5,1,6,0};//栈内元素优先级
int f2[7]={2,2,4,4,6,1,0};//栈外的元素优先级

struct sqstack
{
elemtype stack[maxsize];
int top;
};

void Initstack(sqstack *s)
{
s->top=0;
}

void Push(sqstack *s,elemtype x)
{
if(s->top==maxsize-1)
printf("Overflow\n");
else
{
s->top++;
s->stack[s->top]=x;
}
}

void Pop(sqstack *s,elemtype *x)
{
if(s->top==0)
printf("underflow\n");
else
{
*x=s->stack[s->top];
s->top--;
}
}

elemtype Gettop(sqstack s)
{
if(s.top==0)
{
printf("underflow\n");
return 0;
}
else
return s.stack[s.top];
}

elemtype f(char c)
{
switch(c)
{
case '+':
return 0;
case '-':
return 1;
case '*':
return 2;
case '/':
return 3;
case '(':
return 4;
case ')':
return 5;
default:
return 6;
}
}

char precede(char c1,char c2)
{
int i1=f(c1);
int i2=f(c2);//把字符变成数字
if(f1[i1]>f2[i2])//通过原来设定找到优先级
return '>';
else if(f1[i1]<f2[i2])
return '<';
else
return '=';
}

int Operate(elemtype a,elemtype theta,elemtype b)
{
int sum;

switch(theta)
{
case 0:
sum=a+b;
break;
case 1:
sum=a-b;
break;
case 2:
sum=a*b;
break;
default:
sum=a/b;
}
return sum;
}

int EvaluateExpression(char *exper)
{
char c;
int i=0,sum=0,idx=0;
int k=1,j=1;//设置了开关变量
elemtype x,theta,a,b;
sqstack OPTR,OPND;

Initstack(&OPTR);
Push(&OPTR,f('='));//0压入栈
Initstack(&OPND);
c=exper[idx++];
//先对+和-的情况忽略和左括号的情况
if(c==ch[2]||c==ch[3]||c==ch[5]||c==ch[6])
{
//printf("错误1 \n");
k=0;
return 0;
}

if(c==ch[0])
c=exper[idx++];//如果是+,把它覆盖
if(c==ch[1])
{
j=0;
c=exper[idx++];//也把-号覆盖
}
while(c!='='||ch[Gettop(OPTR)]!='=')
{
if(isdigit(c))
{
sum=0;
while(isdigit(c))
{
if(!j)
{
//实现了数字串前面有负号(之前是:sum=-(sum*10)-(c-'0')结果是-12+13=21)
sum=sum*10-(c-'0');
}
else
sum=sum*10+(c-'0');
c=exper[idx++];
}
//如果还是数字先不压栈,把数字串转化成十进制数字再压栈
Push(&OPND,sum);
j=1;
}
else
if(k)
{
switch(precede(ch[Gettop(OPTR)],c))
{
case'<': Push(&OPTR,f(c));//把它们整型化
c=exper[idx++];
//要除去下个是‘(’的情况 也把以运算符归到这里来
if(c==ch[0]||c==ch[1]||c==ch[2]||c==ch[3]||c==ch[5]||c=='\n')
{
//printf("出错2\n");
k=0;
return 0;//加了开关变量和返回0的值使程序更以操作
}

break;
case'=': Pop(&OPTR,&x);
c=exper[idx++];
//把ch[6]的情况也忽略了但此时并没有注意到右括号后面右运算符的情况
if(c==ch[0]||c==ch[1]||c==ch[2]||c==ch[3]||c==ch[5]||c=='\n')
{
//printf("出错2\n");
k=0;
return 0;
}

break;
case'>': Pop(&OPTR,&theta);
Pop(&OPND,&b);
Pop(&OPND,&a);//注意这里是谁先出栈
Push(&OPND,Operate(a,theta,b));
break;
}
}
}//在这里判断是否以运算符结束是不对的

return(Gettop(OPND));
}

int main()
{

vector<char> exper;
const char ops[]={'-','+'};
char exp[30];
int i,value,x[8],z[8];

for(x[0]=0;x[0]<2;x[0]++)
for(x[1]=0;x[1]<2;x[1]++)
for(x[2]=0;x[2]<2;x[2]++)
for(x[3]=0;x[3]<2;x[3]++)
for(x[4]=0;x[4]<2;x[4]++)
for(x[5]=0;x[5]<2;x[5]++)
for(x[6]=0;x[6]<2;x[6]++)
for(x[7]=0;x[7]<2;x[7]++)
for(z[0]=0;z[0]<=x[0];z[0]++)
for(z[1]=0;z[1]<=x[1];z[1]++)
for(z[2]=0;z[2]<=x[2];z[2]++)
for(z[3]=0;z[3]<=x[3];z[3]++)
for(z[4]=0;z[4]<=x[4];z[4]++)
for(z[5]=0;z[5]<=x[5];z[5]++)
for(z[6]=0;z[6]<=x[6];z[6]++)
for(z[7]=0;z[7]<=x[7];z[7]++)
{
exper.clear();
for(i=0;i<9;i++)
{
exper.push_back('1'+i);
}
for(i=8;i>0;i--)
{
if(x[i-1])
{
exper.insert(exper.begin()+i,ops[z[i-1]]);
}
}

for(i=0;i<exper.size();i++)
{
exp[i]=exper[i];
}
exp[i]='=';
exp[i+1]=0;

value=EvaluateExpression(exp);
if(value==100)
{
printf("%s%d\n",exp,value);
}
}
return 0;
}

运行输出:
123-45-67+89=100
123+45-67+8-9=100
123+4-5+67-89=100
123-4-5-6-7+8-9=100
12+3-4+5+67+8+8=100
12-3-4+5-6-7+89=100
12+3+4+5-6-7+89=100
1+23-4+56+7+8+9=100
1+23-4+5+6+78+9=100
1+2+34-5+67-8+9=100
1+2+3-4+5+6+78+9=100

补充:
刚才漏了几个头文件!

❻ 精通C语言必看的书

就你的说明,现在最需要进行大量的编程实践。实践出真知,要多动手自己写,写内一遍等于看五遍容,并把写出的程序上机运行调试。只有自己写出来了,调试通过了,运行结果正确了,才能说明你真正学会了。
经典书如下:
1.典型实例:
C语言100例.doc (基础)
C时尚编程百例 (强烈推荐)
C语言105例
C语言趣味程序百例精解 (强烈推荐)
C语言实例解析精粹(第二版)(220例,强烈推荐)
2.国外经典教材: (强烈推荐)
C和指针.pdf
C专家编程.pdf
C陷阱与缺陷
3.高级进阶
C高级实用程序设计.pdf(清华大学出版)(强烈推荐)
C语言高级实例解析
c算法大全
高质量C/C++编程指南.doc

❼ 趣味C语言小编程

题眼就是求出2~10的最小公倍数,然后减一。
模拟排队的算法是可行的,但不是最优的。

#include <stdio.h>
int od(int x,int n) //x是否能被n整除,是返回1,否返回0
{
if (x%n) return 0;
return 1;
}

int gbs(int a[],int n) //求a[n]内所有元素的最小公倍数
{
int i,j,k,o,m=0;
int b[20],c[100];
for (i=0;i<n;i++)
{
if(m<a[i]) m=a[i];
b[i]=a[i];
}
j=2; o=0;
while (j<=m)
{
k=0;
for (i=0;i<n;i++){
if (od(b[i],j)) k++;
if (k>1) break;
}
if(k>1)
{
c[o++]=j;
for (i=0;i<n;i++)
if (od(b[i],j)) b[i]=b[i]/j;
m=0;
for (i=0;i<n;i++)
if(m<b[i]) m=b[i];
}
else
j++;
}
k=1;
for(i=0;i<o;i++)
{
k*=c[i];
}
for (i=0;i<n;i++)
{
k*=b[i];
}
return k;
}

main()
{
int a[10];
for(int i=1;i<=10;i++)
a[i-1]=i;
printf("count=%d\n",gbs(a,10)-1);
getchar();
return 0;
}

❽ C语言:编程解马克思的趣味数学题

#include <stdio.h>
void main()
{
int x,y,z;
for (x=1; x<17; x++)
for (y=1; y<25; y++)
for (z=1; z<50; z++)
if((x+y+z==30)&&(3*x+2*y+z==50))
{
printf("x=%d,y=%d,z=%d\n", x, y, z);
break;
}
}

❾ 趣味编程

先定义一个数组,存储原来的数据,从数组的第一位开始,每拿掉一张,就把该位置零,下一位与最后一位掉换,其余位向前覆盖,直到直剩一张为止.
#include <stdio.h>
void main()
{
int a[100];//定义数组
int i,m,n,j,temp;
printf("Enter n:");//输入有多少张
scanf("%d",&n);
if(n==1) printf("the last is:1");//1张2张就直接给出来了
else if(n==2) printf("the last is:2");
else
{
for(i=0;i<n;i++)
{
a[i]=i+1;printf("%3d ",a[i]);//给数组赋值,就相当于编号了
}
printf("\n");
i=0;
do
{
a[i]=0;//拿掉一张,该位置就空了,置为0;
j=i+1;
while(j<n-1)//后位进一,空位的下一位移到最后
{
if(j==i+1) temp=a[j];
a[j]=a[j+1];
if(j==n-2) a[j+1]=temp;
j++;
}

if(a[n-2]==0) break;//还剩一张了
i++;
for(m=0;m<n;m++)//这个循环语句是用来观察每一步,以验证结果
{
if(a[m]==0) continue;
printf("%3d ",a[m]);
}
printf("\n");
}while(1);
printf("The last is:%d\n",a[n-1]);//最后一张的编号
}
}
用TC2.0编译通过,希望能帮到你.

❿ c语言 ACM或者趣味题目

你要这些题目的目的是什么,不就是为了锻炼自己的编程水平么,那还要别人解释算法干什么,这对你能起到锻炼作用么.

这算胡言乱语?做ACM之类的题目,不就是要你自己独立思考么,在失败N次后你可以向别人求助算法,思路,但不能一开始就要知道算法,那样做ACM还有意义么.