主页 > 焦点科技 >棒球大作战_在Visual C++ 6.0中编程,要检查是否有错误时,出现了下面这样的提示,请问各位大虾是什么意思啊? >

棒球大作战_在Visual C++ 6.0中编程,要检查是否有错误时,出现了下面这样的提示,请问各位大虾是什么意思啊?

在Visual C++ 6.0中编程,要检查是否有错误时,出现了下面这样的提示,请问各位大虾是什么意思啊?
首先你的源文件后缀必须是.c,然后,你的第一行应该是#include ,第二行的main()后面没有分号,建议写成int main(),并且在函数结束前写上return 0;。追问

可是我买的书上是#include啊!追答

那就是你的书上写错了。
C语言有许多好书,也有许多烂书,烂书只会误导人。追问

知道了,那是书上故意印错的,为了在后面修改。return 0是写在}前面吗?追答

是的,不要忘记加分号,没有return 0;是很老的写法。#include //h还是n?
main()//你的多了个分号
{
printf("Hello,我要学习C语言。\n");
}<stdio.n>改成stdio.h
main();改成main()/*不用这个符号;*/加载的文件名就错了
c语言编程中的错误,怎么改


问题都用//标注出来了以看下。欢迎加c\c++行列来!

#include

int
change(int
a[][3]);
//这里需要申明函数,因为编译器开始编译的,它不知道你change函数写在后面,这你得先告诉它,然偶在main函数里面才能用
void
main()
{
int
a[3][3];
int
i,j;
//int
change(a[3][3],a[3][3]);
//首先就功能上来说,放这里没意义,应该放到输入数字之后。再就是调用函数不需要加上类型int,直接用名称加上参数就可以了,如下面的change(a)
printf("请输入数组a:\n");
for(i=0;i<3;i++)
{

for(j=0;j<3;j++)

scanf("%5d",&a[i][j]);

printf("\n");
}
change(a);
//正解,int
a[3][3]
的a就代表了这个数组,所以后面的不要,写了反而错。a代入函数后会蜕变为指向这个数组的指针(这句话看不懂可以无视)

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

//a[j][i]=a[i][j];
既然change函数实现了转职功能,这个就没必要了,加上了反而前面的数覆盖了后面的数。

printf("%5d",a[i][j]);
//因为已经转置了,所以从头开始输出,而不是a[j][i]

printf("\n");

}

getchar();
//这句话没什么意义,不过可以帮助你在用vc编程时,可以看到结果而不是闪一下程序就没了
}
//这里形参只要一个就可以了,函数的形式如下
//函数类型
函数名字(参数类型
参数名字,参数类型
参数名字,……)
//
int
change
(
int
a[3][3])
//这里要注意了,下面代码实质上是指针操作,直接代入a[3][3]是没有意义的,a[3][3]会被到栈区,原来的a[3][3]不会有任何改变
//所以要用指针,int
a[][3]代表的是二维数组指针,也可以写作int
(*a)[3]。具体如何实现可以参考指针这一节的课本
int
change(int
a[][3])
{
int
i,j,temp;
for(i=0;i<3;i++)

for(j=0;j<3;j++)

{

temp=a[i][j];

a[i][j]=a[j][i];

a[j][i]=temp;

}

return
0;
//定义了函数类型记得加返回值,
}
vb编程,帮忙看一段代码,有错误,但是我找不出来!
and的优先级别or的高哈所该改成
Dim a1, a2 As Integer
a1 = TextBox1.Text
a2 = TextBox2.Text

If (a1 = 0 Or a1 = 3 Or a1 = 6 Or a1 = 9) And (a2 = 0 Or a2 = 3 Or a2 = 6 Or a2 = 9 )Then
TextBox41.Text = "00"
再一个,a1,a2赋值候还是用下val函数吧!呵呵!
没有错误,只是不能按照要求正确显示!?
就是错着嘛!呵
没见过你这么序的,并且你的if语句肯定错着。因为你的if条件里面and是先执行的,所以结果肯定不对了!
告诉你个调试方法吧,
在你的判断外层用for循环,让a1和a2从1循环到9,然后用F7单行执行,看看程序每次跑那里去执行了,就可以知道你那里写得对不对!!!Dim a1, a2 As Integera1 = TextBox1.Text
a2 = TextBox2.Text
If a1 mod 3= 0And a2 mod 3 = 0 Then
TextBox41.Text = "00"ElseIf a1 mod 3=0And a2 mod 3=1 ThenTextBox41.Text = "01"

你码太繁琐,其中if的优先级可能会使结果无法预料,用mod运算好一点,代码只改点,基本上你也知道后面应该怎么改了吧你把 结构修改一下, 不要用if then elseif 的结构

用if then
end if
if then
end if
....这种结构,修改好了,就OK了不知道,具体的错误和要求,代码运行没报错。是不是功能没事现啊。再补充一下吧TextBox1.Text返回值是字符型,应该改成
a1=val(TextBox1.Text),a2雷同。另外你的条件语句太长,专业角度讲程序的可读性不好。
在C语言Windows编程中怎样判断编辑框中没有内容时报错,最好给出代码,谢谢!

窗口过程核心代码试环境vc6 _MBCSLRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){... static HWND hEdit; static HWND hBtn; TCHAR buf[1000]; switch (message) { case WM_CREATE: //PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ; hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("EDIT"), TEXT(""), WS_CHILDWINDOW, 100, 100, 200, 30,hwnd, NULL, NULL, NULL);ShowWindow(hEdit, SW_SHOW);hBtn = CreateWindowEx(WS_EX_WINDOWEDGE, TEXT("BUTTON"), TEXT("按钮"),WS_CHILDWINDOW, 340, 100, 100, 30,hwnd, NULL, NULL, NULL);ShowWindow(hBtn, SW_SHOW);return 0 ; case WM_COMMAND:if(lParam == (LPARAM)hBtn){GetWindowText(hEdit, buf, 1000);if(!strlen(buf)){MessageBox(hwnd, TEXT("文本框为空!"), TEXT("错误"), MB_OK);}}return 0;.... case WM_DESTROY:DestroyWindow(hEdit);DestroyWindow(hBtn); PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ;}
再来几个mfc的void CMfcdlg2014Dlg::OnButton1(){ // TODO: Add your control notification handler code here CString s; GetDlgItemText(IDC_EDIT1, s); if(s.IsEmpty()) {MessageBox(_T("文本框为空!")); }}
void CMfcdlg2014Dlg::OnButton2(){ // TODO: Add your control notification handler code here TCHAR buf[1000]; GetDlgItemText(IDC_EDIT1, buf, 1000); if(!strlen(buf)) {AfxMessageBox(_T("Edit1为空!")); }}
void CMfcdlg2014Dlg::OnButton3(){ // TODO: Add your control notification handler code here CWnd *p = GetDlgItem(IDC_EDIT1); CString s; ((CEdit*)p)->GetWindowText(s); if(s.IsEmpty()) {MessageBox(_T("文本框为空!")); }}
void CMfcdlg2014Dlg::OnButton4(){ // TODO: Add your control notification handler code here TCHAR buf[1000]; ::GetDlgItemText(m_hWnd, IDC_EDIT1, buf, 1000); if(!strlen(buf)) {AfxMessageBox(_T("Edit1为空!")); }}



上一篇: 下一篇: