c语言easy,C语言easy.doc

本文包含四个C语言编程问题的解答。第一个问题是关于输出二维数组的特定行,第二个问题是寻找满足特定数字和数字之和模17为0的序列,第三个问题是简化负数输入的字符串处理,第四个问题是实现两个整数的最大公约数计算。
摘要由CSDN通过智能技术生成

C语言easy

PAGE

PAGE 26

Problem 1 表格问题#includevoid output(const int* a) { printf("%d %d %d\n",a[0], a[1], a[2]); printf("%d %d %d\n",a[3], a[4], a[5]);}int ok(const int* a) { int used[7] = {0};//used[i]的值为0:i尚未被用;1:i已被使用 int i; for (i = 1; i < 5; i++) { if ( used[ a[i] ] ) return 0; used[ a[i] ] = 1; } //for循环结束意味着a[i]互不相同 return a[1] < a[2] && a[3] < a[4] && a[0] < a[3] && a[1] < a[4];}int main() { int n = 0, i, rank; int table[5][6];//存放按照字典序排序的5种表格 int a[6]; //存放1种表格a[0] = 1;a[5] = 6; for (a[1] = 2; a[1] <= 5; a[1]++) for (a[2] = 2; a[2] <= 5; a[2]++) for (a[3] = 2; a[3] <= 5; a[3]++) for (a[4] = 2; a[4] <= 5; a[4]++) if ( ok(a) ) { for (i = 0; i < 6; i++) table[n][i] = a[i]; n++; //行下标加1 } while (scanf("%d",&rank)==1) output( table[rank - 1] );return 0;}Problem 2 奇妙的数字#includeint digitSum(int n) { int sum = 0; while (n > 0) { sum += n % 10; n /= 10; } return sum;}int main() { int answer[10];//存放前10个满足条件的数 int n, i; for (n=0,i=1; n < 10; i++) { if ( 0 == digitSum(i) % 17 && 0 == digitSum(i + 1) % 17) { answer[n++] = i; } } while (scanf("%d",&i)==1) { printf("%d\n",answer[i - 1]); } return 0;}Problem 5 求绝对值//版本1#includeint main() { char line[1002]; while (scanf("%s",line)!=EOF) { if ( '-' == line[0] ) printf("%s\n",line+1); else printf("%s\n",line); } return 0;}//版本2#includeint main(){ char ch; while(scanf("%c", &ch)!=EOF) { if(ch!='-') printf("%c",ch); } return 0;}Problem 6 求最大公约数#includeint gcd(int m,int n)//辗转相除法{ int r=m%n; while(r) { m=n; n=r; r=m%n; } return n;}int main(){int M,N;while(scanf("%d%d",&M,&N)==2){

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值