return 下出现说明:应输入声明

C语言 码拜 9年前 (2016-04-15) 3355次浏览
#include <stdio.h>
#define COLS 4
int sum2d(int ar[][COLS], int rows);
int sum(int ar[],int n);
int main(void)
{
	int total1, total2,total3;
	int * pt1;
	int (*pt2)[COLS];
	pt1 = (int [2]){10.20};
	pt2 = (int [2][COLS]){{1,2,3,-9},{4,5,6,-8}};
	total1 = sum(pt1,2);
	total2 = sum2d(pt2,2);
	total3 = sum((int []){4,4,4,5,5,5},6};
	printf("total1 = %d\n", total1);
	printf("total2 = %d\n", total2);
	printf("total3 = %d\n", total3);
	return 0;
}
int sum(int ar[], int n)
{
	int i;
	int total = 0;
	for(i=0;i<n;i++)
		total += ar[i];
	return total;
}
int sum2d(int ar[][COLS], int rows)
{
	int r;
	int c;
	int tot = 0;
	for(r=0;r<rows;r++)
		for(c=0;c<COLS;c++)
			tot += ar[r][c];
	return tot;
}

此段代码为C primer plus P277页[程序清单10.19]代码。
本人是用的是 VS2010软件进行的编写。
出现以下波浪线问题:
1、21行 return 出现说明:应输入声明
2、11、12、16行 int 出现说明:不允许使用类型名
3、11、12、16行 ” {  ”  符号处出现说明:应输入”  ;  ”        (注:此处符号是英文标点)
4、17、18、19行 “  ,  ” 符号处出现说明: 英输入 ”  )  ”      (注: 此处符号是英文标点)
return 下出现说明:应输入声明

解决方案

10

#include <stdio.h>
#define COLS 4
int sum2d(int ar[][COLS], int rows);
int sum(int ar[],int n);
int main(void)
{
	int total1, total2,total3;
	int * pt1;
	int (*pt2)[COLS];
	int temp_1[2] = {10, 20};
	int temp_2[2][4] = {{1,2,3,-9},{4,5,6,-8}};
	int temp_3[6] = {4,4,4,5,5,5};
	pt1 = temp_1;
	pt2 = temp_2;
	total1 = sum(pt1,2);
	total2 = sum2d(pt2,2);
	total3 = sum(temp_3,6);
	printf("total1 = %d\n", total1);
	printf("total2 = %d\n", total2);
	printf("total3 = %d\n", total3);
	return 0;
}
int sum(int ar[], int n)
{
	int i;
	int total = 0;
	for(i=0;i<n;i++)
		total += ar[i];
	return total;
}
int sum2d(int ar[][COLS], int rows)
{
	int r;
	int c;
	int tot = 0;
	for(r=0;r<rows;r++)
		for(c=0;c<COLS;c++)
			tot += ar[r][c];
	return tot;
}

5

偶遇到相似问题都是用
“每次用/*…*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。

10

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
有人说一套做一套,你相信他说的还是相信他做的?
其实严格来说这个世界上古往今来全部人都是说一套做一套,不是吗?
不要写连本人也预测不了结果的代码!

5

本人印象中下面这种写法只是某些特殊版本的编译器才能识别吧,应该不属于标准C的语法吧。
pt1 = (int [2]){10.20};
研究别人的写法,本人觉得没有任何问题。但本人写代码的时候最好采用通熟易懂的写法。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明return 下出现说明:应输入声明
喜欢 (1)
[1034331897@qq.com]
分享 (0)