c和指针第二章编程练习代码

1.    main.c

#include<stdio.h>
int main()
{
	int a, b, c ;
	scanf ( "%d", &a ) ;
	b = increment ( a ) ;
	c = negate ( a ) ;
	printf ( "%d  %d", b, c ) ;
	return 0 ;
 } 

        increment.c

int increment ( int n )
{
	return n + 1 ;
}

        nagate.c

int negate ( int n )
{
	return -n ;
}

需手动输入

2.书中答案:

#include<stdio.h>
#include<stdlib.h>

int main()
{
	int ch ;
	int braces ;
	
	braces = 0 ;
	
	while ( ( ch = getchar() ) != EOF )	//逐字读取程序 
	{
		if ( ch == '{' )		//左花括号始终是合法的 
			braces += 1 ;
		if ( ch == '}' )		//右括号只在有一个左括号与其适配时才合法 
			if ( braces == 0 )
				printf ( "Extra closing brace!\n" ) ;
			else
				braces -= 1 ;
	}
					
	if ( braces > 0 )	//验证是否存在未适配的左括号 
		printf ( "%d unmatched opening braces(s)!\n", braces ) ;
			
	return EXIT_SUCCESS ;	
}

    自己写的:

#include<stdio.h>
#define MAX 1000

int main()
{
	int num = 0 ;
	int i ;		//数组下标 
	char ch ;
	char c[MAX] ;	//储存字符串	
	scanf ( "%s", c ) ;
	
	while ( ( ch = getchar() ) != EOF )	//逐字读取 
	{
		for (i =0; c[i] != '\n'; i++ )	//逐行判断 
		{
			if ( c[i] == '{' && num >= 0 )	//必须先有左括号 
				num++ ;
		
			if ( c[i] == '}' )
				num-- ;
		}
	}
	
	if ( num == 0 )	//验证是否适配 
		printf ( "noproblem" ) ;
	else
		printf ( "exit") ; 

	return 0 ;
}

发布了12 篇原创文章 · 获赞 3 · 访问量 2331

猜你喜欢

转载自blog.csdn.net/lhg1714538808/article/details/79333115