1.如何计算各位数字之和
char n[101];
int sum = 0;
int i = 0;
//计算各位数字之和
while (n[i] != 0) {
**int num = n[i] - '0';//将字符转换为数字**
sum += num;
i++;
}
2.字符串的复制 strcpy()函数
头文件:#include <string.h>
例子:
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[]="Sample string";
char str2[40];
char str3[40];
strcpy (str2,str1);
strcpy (str3,"copy successful");
printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
return 0;
}
输出结果:
str1: Sample string
str2: Sample string
str3: copy successful
3.函数参数表中的数组,其实是指针
如:
** int sum(int a[],int n) = int sum(int *a,int n) **
又数组变量本身表达地址 (a==&a[0])
,所以
*int a[10];int p=a;
//就不用&取址符
但是如果是数组的单个变量,就需要&了.
4.scanf()的返回值
例如:
scanf(“%d%d“,&a,&b)
当a b都有输入,则会返回2;
scanf ("%d%d",&a,&b)==2;
当只输入了一个,则会返回1;
scanf ("%d%d",&a,&b)==1;
当都没输入,则会返回0。
scanf ("%d%d",&a,&b)==0;
所以可以将以上等式作为条件,边输入边判断。如以下PAT例题:
扫描二维码关注公众号,回复:
12898264 查看本文章

#include<stdio.h>
int main(){
int a,b;
//分离出第一项,是较好的安排空格
if(scanf("%d %d",&a,&b)==2){
if(b==0){
//因为是指数递降的方式输入,如果第一项指数是0,那就为零多项式。
printf("0 0");
}
else{
printf("%d %d",a*b,b-1);
}
}
while(scanf("%d %d",&a,&b)==2){
if(b==0){
return 0;
}
else{
printf(" %d %d",a*b,b-1);
}
}
}