Description 输入一个整型数,存入变量i,通过子函数change把主函数的变量i除2,然后打印i 例如如果输入的为10,打印出5,如果输入的为7,打印出3 Input 一个整型数 Output 对应整型数除2后的商
代码
#include<stdio.h>
#include<string.h> //外部的头文件
void change(int *j){
*j = *j / 2;
}
int main()
{
//Description
//输入一个整型数,存入变量i,通过子函数change把主函数的变量i除2,然后
//打印i,例如如果输入的为10,打印出5,如果输入的为7,打印出3
//Input
//一个整型数
//Output
//对应整型数除2后的商
int i;
scanf("%d",&i);
change(&i);
printf("%d\n",i);
return 0;
}
Description 输入一个整型数,然后申请对应大小空间内存,然后读取一个字符串,字符串的输入长度小于最初输入的整型数大小,最后输出输入的字符串即可(无需考虑输入的字符串过长,超过了内存大小); 注意下面问题:
char *p;
scanf("%d",&n);
p = malloc(n);
scanf("%c",&c);//注意在scanf和gets中间使用scanf("%c",&c),去除换行
gets(p);
Input 一个整型数和一个字符串,例如 10 hello Output 一输出输入的字符串,上面输入的是hello,那么输出hello
代码
#include<stdio.h>
//#include<string.h>
#include<stdlib.h>
int main()
{
int n;
scanf("%d",&n);
char c;
scanf("%c",&c);//清除标准输入缓冲区中的\n
char *p;
p = (char*)malloc(n);//申请n个字节大小的空间,强制类型转换为char*
gets(p);
puts(p);
return 0;
}
注意:
在读取字符之前没有清除输入缓冲区中的换行符,那么
scanf("%c", &c)
会直接读取到换行符,并将其赋值给变量c
,而不会等待用户输入一个字符。这可能导致程序的逻辑错误。