# include <stdio.h> int main(void) { int a[30] = {0, 10, 100, 101, -10, -100, -1000, 99, -99, -1, 1}; for (int i=0; i<11; ++i) { if (a[i] < 0) { a[i] *= -1; } ten_one(a[i]); } return 0; } void ten_one(int num) { if (num >= 0) { if ((num / 10) < 1) { printf("这个数是:%d,它本身就是个位数,没有十位数.\n", num); return; } //求其个位数 int result = 0; result = output_one(num); printf("其个位数是:%d.\n", result); //求其十位数 //通过(num / 10)可以取消掉个位数,然后我再将其 //代入到求各位的运算中去的时候,就可以把求十位 //当作求个位来求了。 int num_ten = num / 10; int result_ten = 0; result_ten = output_one(num_ten); printf("其十位数是:%d.\n", result_ten); } else { //倘若是一个负数进行运算,我只要将被运算的 //负数,改为正数,代入正数的运算当中,求得的 //十位和个位因该是一样的。 } } int output_one(int num_one) { return num_one - ((num_one / 10) * 10); } /* 希望宋老师第三部分,也能早点出来 */
奇怪,为什么我之前发的内容没了?我只是搞不明白 #include <stdio.h> int main(void) { float i = 20.0; float j = i / 7.0; if(j * 7.0 == i) printf("equal\n"); else printf("unequal\n"); return 0; } 的结果为什么和 #include <stdio.h> int main(void) { float i = 20.0; float j = i / 7.0; float k = j * 7.0; if(k == i) printf("equal\n"); else printf("unequal\n"); return 0; } 的结果不同。
宋老师,这两个对吗? 1、写两个表达式,分别取整数x的个位和十位 取整数x的个位:x%10 取整数x的十位:x%100/10 2、写一个函数,参数是整数x,功能是打印参数x的个位和十位 vord print_single_ten(int x) { printf("Single digit = %d",x%10); printf("Ten digit = %d",x%100/10); }
没错啊
#include <stdio.h> void print_single_ten(int x) { printf("Single digit = %d \n",x%10); printf("Ten digit = %d \n",x%100/10); } int main(void) { print_single_ten(22); }
取整数x的个位:x%10 取整数x的十位:x%100/10 or x/10%10
#include <stdio.h> void print_single_ten(int x) { printf("Single digit = %d \n",x%10); printf("Ten digit = %d \n",x/10); } int main(void) { print_single_ten(22); }
个位 x%10 十位 X/10
x % 10 取个位为余数。 x % 100 / 10 十位和个位为余数,取十位除以10。 x /10 % 10 将十位变个位,取个位为余数。
个人认为这道题不够严密,unsigned int x答案才是这样。如果只是整型变量,应该是abs(x)。当然讲到这个地方还没涉及到unsigned。
就算x是负的,讲到这里已经足够做这题了
宋老师性情中人 C都写的这么给力啊 崇拜
宋老师你好,我的代码是: #include <stdio.h> int main(int n) { int x, y; printf("请输入整数n的值:"); scanf("%d", &n); x = n % 10; y = n % 100 / 10; printf("%d的个位是:%d, 十位是:%d.\n", n, x, y); return 0; } 为什么有提示: warning: ‘main’ takes only zero or two arguments
void vecteur_int(int x) {int i,j,k; i=(x%10); k=(x%100); if (i!=0) printf("%d's one is %d.\n",x,i); else printf("%d's one is 0.\n",x); if (k!=0) {if (k>0) j=((k-i)/10); if (k<0) j=-((k-i)/10); printf("%d's 10 is %d.\n",x,j);} else printf("%d's 10 is 0.\n",x);
#include <stdio.h> void print_num(int x) { while(x>100) x %= 100; printf("The first is %d.\t The second is %d.\n", (x/10), (x%10)); } int main(void) { int i, num; for(i = 0; ; i++) { scanf("%d", &num); print_num(num); if(num == 0) break; } return 0; }
至于楼上Inf_Erno g.k.inf.erno@gmail.com : 为什么有提示: warning: ‘main’ takes only zero or two arguments 我觉得是因为main函数的形参为(int argc, char **argv)造成的吧,楼上int main(int n) 这样的话形参的个数只有一个;编译的提示信息非常有帮助! 请宋老师和各位同学指点,谢谢!
int n = 52; 十位:n / 10; 个位:n % 10;
请问在main函数里写return 0;是不是从不会有错? 像这样int main(void) { .....; return 0; }
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!