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 ;
}