新人求助:关于scan()函数、结构体、double类型的问题,谢过各位!

已经 发布于 2013/04/14 18:57
阅读 131
收藏 1
#include <stdio.h>
#include <stdlib.h>

struct circuit
{
	char yjtype;
	int	number;
	int startnode;
	int	endnode;
	int control;
	double argument;
};

void flush()
{
	char temp;
	while ((temp = getchar()) != '\n' && temp != EOF) ;
}

void main()
{
	int i, b;
	struct circuit *Node;
	printf("请输入元件个数:\n");
	scanf(" %d",&b);
	Node = (struct circuit*)calloc(b , sizeof(struct circuit));
	printf("%d\n",b);
	printf("请输入%d个元件参数:\n",b);
	printf("***************************************************\n");
        printf("格式为:元件类型,开始结点,终止结点,控制支路,元件参数\n");	
        printf("***************************************************\n");
	for(i = 0; i < b; i++)
	{
		printf("第%d个结点参数:\n", i+1);
		flush();
		scanf(" %c , %d , %d , %d , %d , %g",
                        &Node[i].yjtype,&Node[i].number,&Node[i].startnode,
			&Node[i].endnode, &Node[i].control, &Node[i].argument);
	        printf("%c,%d,%d,%d,%d,%g\n",
			Node[i].yjtype, Node[i].number, Node[i].startnode,
			Node[i].endnode, Node[i].control, Node[i].argument);
	}
	free(Node);
	flush();
	getchar();
}
上面是小弟自己捣鼓出来的程序,但是,再赋值时,结构体中最后的Node[i].argument总是不正确。求各位大虾帮忙看看!~
加载中
0
OscerSong
OscerSong
scanf函数中不要空格,逗号
OscerSong
OscerSong
http://www.baike.com/wiki/scanf
0
hulubo
hulubo
输入的时候有没有加f哦
0
已经

问题已经得到解决了:

double 应该用%lf。谢谢各位!~

0
peterli
peterli
可以吗?我怎么不行
0
peterli
peterli

可以了


返回顶部
顶部