| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1024 人关注过本帖
标题:[求助]我是新手//请教一个中等题
只看楼主 加入收藏
v1v1wang
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-3-25
收藏
得分:0 
不好意思啊..我题目写错啦..


#include "stdio.h"
void main()
{int i1=3,i2=3,j1,j2;
j1=++i1+(++i1)+(++i1);
prinf("i1=%d,j1=%d\n",i1,j1);
j2=i2+++(i2++)+(i2++);
prinf("i2=%d,j2=%d\n",i2,j2);
}
这在TC下输出
i1=6,j1=18 i2=6,j2=9
在vc下输出
i1=6,j1=16 i2=6,j2=9





我想知道为什么不是这个样子的\

j1=++i1+(++i1)+(++i1);
括号优先级高,--->j1=++i1+i1+(++i1) 这时i1的值为4
--->j1=++i1+i1+i1 这时i1的值为5
--->j1=i1+i1+i1 这时i1的值为6
为什么不是6+5+4???


还有那个16是怎么弄的///
谢谢大家..

2007-03-29 18:48
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 

这是因为TC 和VC 的执行策略不同.


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-29 21:32
飞影王子
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-3-30
收藏
得分:0 
回复:(v1v1wang)[求助]我是新手//请教一个中等题

这个程序员如是刚开始的学者,这个程序编的不错,我经过的调试,改为以下程序,能用了,我也是菜鸟,大家多多指教

#include <conio.h>
#include <iostream>
#include <string>
using namespace std;
struct adbook
{
char name[7];
char number[12];
};
//////////////////////////////////////////////////////////
int t=0;
class bookss
{
adbook data[10];

public:
void input(char *p,char* a); //增加函数
void output(); // 输出
void find1(char *p,int n); // 查找
void find2(char *p); //查找
};
////////////////////////////////////////////////

void bookss::input (char *p,char* a)
{
strcpy(data[t].name ,p);
strcpy(data[t].number ,a);
t++;
}

void bookss::output ()
{
cout<<" "<<data[t-1].name <<" "<<data[t-1].number <<endl;
}

void bookss::find1 (char *p,int n)
{
for(int i=0;i<10;i++)
{
for(int j=0;j<strlen(data[i].name);j++)
{
for(int k=j;k<n;k++)
{
if(p[k]==data[i].name[j])
{
cout<<" "<<data[i].name <<" "<<data[i].number <<endl;
break;
}

}

}

}

}
////////////////////////////////////////////////////////////
void bookss::find2 (char *p)
{
for(int i=0;i<10;i++)
{
if(strcmp(data[i].name ,p)==0)
cout<<" "<<data[i].name <<" "<<data[i].number <<endl;
}

}


///////////////////////////////////////////////////////////////////////

int main()
{
char* str=new char[10];
char* number=new char[10];
char i;
int k;
bookss bk;
while(1)
{ system("cls");
cout<<"*---------------------------------------------------*"<<endl;
cout<<"* *"<<endl;
cout<<"* 欢迎使用通迅录 *"<<endl;
cout<<"* *"<<endl;
cout<<"* 请选择操作 *"<<endl;
cout<<"* 1 新增 2 输出 3 查找 4 退出 *"<<endl;
cout<<"*---------------------------------------------------*"<<endl;

cin>>i;
if(i=='4')
{cout<<"谢谢使用,88"<<endl;
exit(0);
}
switch(i)
{
case '1':
{

cout<<"请输入 "<<endl
<<" 姓名, 电话号码"<<endl;

cin>>str>>number;

bk.input (str,number);
}break;
///////////////////////////////////////
case '2':
{ cout<<" 姓名 电话号码"<<endl;
int temp=t;
t=1;
while(temp>=t)
{ bk.output();
t++;
}
t--;
getch();
}break;
//////////////////////////////////
case '3':
{
cout<<" 1 按姓名查找 2 按号码查找 "<<endl;
char n;
char *p1=new char[10];
cin>>n;
cout<<"请输入关键字"<<endl;

switch(n)
{

case '1':
{ cin>>p1;
k=strlen(p1);
cout<<" 姓名 电话号码"<<endl;
bk.find1(p1,k);
getch();
}break;
case '2':
{
cin>>p1;
cout<<" 姓名 电话号码"<<endl;
bk.find2(p1);
getch();
}break;

default:
{
cout << "输入错误!!!,请重新输入" << endl;
getch();
}break;
}break;
delete [] p1;
}break;

default:
{
cout << "输入错误!!!,请重新输入" << endl;
getch();
}break;
}
}
delete [] str;
delete [] number;
return 0;

}
//////////////////////////////////////////////////////////////////////////////////


2007-03-30 10:26
datoushen
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-3-24
收藏
得分:0 

如果你们是初学者
那我连菜鸟都算不上了啊

2007-03-30 13:41
zcs302
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-3-6
收藏
得分:0 

搞笑了吧,我在vc上运行
两个答案一样
6 16

2007-03-31 23:01
快速回复:[求助]我是新手//请教一个中等题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036936 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved