面朝大海,春暖花开

欢迎学习.net ,mono的朋友。

 

哭啊,c语言

看别人做ACM训练算法能力,俺也想学学,找来浙大ACM第一题,由于对c很生疏,做了个把小时,看看答案,就5行代码。

题目:

Sample Input

1 5

Sample Output

6
 
就是输入2个用空格隔开的整数,输出2者的和。
C版标准答案如下:
#include <stdio.h>

int main()
{
    
int a,b;
    
while(scanf("%d %d",&a, &b) != EOF)
        printf(
"%d\n",a+b);
}
不知道scanf还能这样用。
写了一大框的代码,


#include <stdio.h>
#include 
<stdlib.h>
void goerror()
{
  printf(
"invalid input!");
  exit(
0);
}

void main()
{
int length=25;

char c[25];
int i=0;
int j=0;
char c1[12],c2[12];

long a=0;
long b=0;

memset(c, 
'\0',  25);
memset(c1, 
'\0'12);
memset(c2, 
'\0'12);

printf(
"Enter an integer:");
gets(c);

while(i<length)
{
if(isspace(c[i])>0break;
if(!isdigit(c[i])) goerror();
c1[j]
=c[i];
i
++;
j
++;
}


i
++//jump the space
j=0;

while(i<length)
{
if(!c[i]) break;
if(!isdigit(c[i])) goerror();
c2[j]
=c[i];
i
++;
j
++;
}


a
=atoi(c1);
b
=atoi(c2);

printf(
"first int is %d\nsecond int is %d\n",a,b);

printf(
"%d*%d is %d",a,b,a*b);

}

查资料的时候,了解了c的一些事情,比如变量申明放在代码块的问题。

http://blog.csdn.net/zyc464301/archive/2007/10/28/1852154.aspx
还有个很好的c/c++参考。
http://www.cppreference.com/index.html

posted on 2014-01-14 17:00  钱小柜  阅读(142)  评论(0编辑  收藏  举报

导航