#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int yue(int a, int b) {
int c;
while(1) {
c = a % b;
if (c == 0) {
return b;
}
else {
a = b;
b = c;
}
}
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("%d", yue(a,b));
return 0;
}
宝刀未老,哈哈,记得那个小的除以大的,那么除数是大的,而最后余数就是小的,再一换就成了大的除以小的,这样也是一举两得
大写在前,小写后
大A、Z,65,90
小a、z,97,122
中间差32个
//十进制
数组的动态分配加补充
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
scanf("%d", &n);
getchar();
char* str = malloc(n + 1);
fgets(str,sizeof(str), stdin);
//保证了n个,且不会多换行符
printf("%s", str);
free(str);
return 0;
}
瞻顾遗迹,如在昨日,令人长号不自禁
第一点,getschar(); 读取并丢弃换行符,注意( )不能掉,否则直接结束运行
第二点,动态分配malloc函数需要加<stdlib.h>的头文件
第四点,如果你使用动态分配内存n+1个字节,fgets的第二个位置就可以直接用sizeof函数而不需要再写一遍n+1了
第五点,+1的目的是存储字符结束符\0,你这样写,就无需用循环一个一个输出字符来避免输出换行符了!因为fgets会舍命陪君子,换行符压根不会被存储
Comments NOTHING