C语言diamond编程找错

void main(C,D)
{
diamond(info(void));
getch();
}
作业要求应用两次info,一次diamond,不知道这个形式对不对?
这个程序运行不了啊- -求大侠帮助。
打错了。。。
这是原编程:
#include<stdio.h>
char info(void)
{
char C;
char D;

printf("Please enter a letter (A-Z):");
scanf("%c",&C);

return C;

printf("Please enter a letter (A-Z):");
scanf("%c",&D);

return D;
}

void diamond(char C, char D)
{
printf(" %c\n",C);
printf(" %c%c%c\n",C,D,C);
printf(" %c%c%c%c%c\n",C,D,D,D,C);
printf("%c%c%c%c%c%c%c\n",C,D,D,D,D,D,C);
printf(" %c%c%c%c%c\n",C,D,D,D,C);
printf(" %c%c%c\n",C,D,C);
printf(" %c",C);
}
void main(C,D)
{
diamond((info(void));
getch();
}

首先main没有你这样的写法
如果info 和diamond都是你要写的函数的话
#include <stdio.h>
void diamond()
{
printf("diamond");
}
void info()
{
printf("info");
}
int main(int argc,char **argv)
{
diamond();
info();
info();
getch();
return 0;
}

这样就行了

看了你补充的程序了,我想问问这程序是在linux下运行还是在windows下运行追问

刚开始学习C语言,没有接触到argc和argv...看不懂你写的...最好可以在原编程上修改一下.谢了。 windows下运行。

追答

知道你意思了
头文件加上
#include
main函数改成
void main()
{
diamond(info(),info());
getch();
}

另外我想说你这个函数有多余部分
char info(void)
{
char C;
char D;

printf("Please enter a letter (A-Z):");
scanf("%c",&C);

return C;

printf("Please enter a letter (A-Z):");
scanf("%c",&D);

return D;
}

直接写成
char info(void)
{
char C;

printf("Please enter a letter (A-Z):");
scanf("%c",&C);

return C;
}
就行了,后面的部分永远运行不到的

整个程序最后改成这样::
#include
#include
char info(void)
{
char C;

printf("Please enter a letter (A-Z):");
scanf("%c",&C);

return C;
}

void diamond(char C, char D)
{
printf(" %c\n",C);
printf(" %c%c%c\n",C,D,C);
printf(" %c%c%c%c%c\n",C,D,D,D,C);
printf("%c%c%c%c%c%c%c\n",C,D,D,D,D,D,C);
printf(" %c%c%c%c%c\n",C,D,D,D,C);
printf(" %c%c%c\n",C,D,C);
printf(" %c",C);
}

void main()
{
diamond(info(),info());
getch();
}

追问

题目要求最后的运行结果是Please enter a letter (A-Z): H
Please enter a letter (A-Z): P
Diamond shape of the letters:
H
HPH
HPPPH
HPPPPPH
HPPPH
HPH
H
这个样子,改成这样不是这个结果了啊?

追答

哈哈,早上题目不就简单了么,等下,我再给你改改
#include
#include
char info(void)
{
char C;

printf("Please enter a letter (A-Z):");
scanf("%c",&C);

return C;
}

void diamond(char C, char D)
{
printf(" Diamond shape of the letters:\n")
printf(" %c\n",C);
printf(" %c%c%c\n",C,D,C);
printf(" %c%c%c%c%c\n",C,D,D,D,C);
printf("%c%c%c%c%c%c%c\n",C,D,D,D,D,D,C);
printf(" %c%c%c%c%c\n",C,D,D,D,C);
printf(" %c%c%c\n",C,D,C);
printf(" %c\n",C);
}

void main()
{
diamond(info(),info());
getch();
}

就是这样啊,你运行下

追问

需要enter两个字母啊,你这样编的话只能输入一个字母啊- -
最后显示的是
Please enter a letter (A-Z):P
Please enter a letter (A-Z) :
P
PPP
PPPPP
PPP
P
这样的形式,还是不对啊- -

追答

输入两个字母
info()不是调用了两次么
你运行,别用自己的判断去看
运行了就知道了
第一次你输入一个字母,第二次你还要再输入一个啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-29
问题不清楚!
这个程序肯定运行不了!
不知道你要干什么!追问

刚才复制粘贴写少了。。。麻烦再看看。。。谢了

追答

显然不对,你的diamond应该有两个参数,但是你的info(void)是只能返回一个参数的,肯定会报错!
其次main()函数里面的参数不能用C,D的,这个参数是有标准格式的,你看一下教材吧!

追问

C语言不是我主专业,学校根本就不细讲...那能麻烦你修改一下么?

追答

void main()
{
diamond((info(),,info());
getch();
}
也许这样吧,但是这并不能达到你的要求!
建议你给info()加上参数!

第2个回答  2011-10-29
你这个肯定不对啦。
相似回答