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還有意義么.