我有一个问题:我应该建立一个程序,当我输入一个低于一百的整数时,所有小于所述整数且包含数字“3”的数字出现在屏幕上(等等,如果我输入14 ,数字“3,13”应该出现。)
但是,我的代码有问题,请帮忙!谢谢!
代码:
#include <stdio.h>
int main(int argc, const char * argv [])
{
int wholenumber;
printf("百以内の整数を入力してください\n");
scanf_s("%d", &wholenumber);
while(0 <wholenumber)
{
wholenumber--;
while(0 < wholenumber){
wholenumber = 3 %10;
wholenumber = 3 /10;
if (wholenumber == 3);
{printf("%3d",wholenumber);}
}
}
return 0;
}
答案 0 :(得分:1)
我不知道你对这段代码的意图是什么:
wholenumber = 3 % 10;
wholenumber = 3 / 10;
第一行将变量设置为3,第二行设置为0 ..这会强制程序退出循环。
答案 1 :(得分:1)
如果x
是0到99之间的整数,则以下内容将检查其中任何一个数字是否为3
:
if (x / 10 == 3 || x % 10 == 3) {
...
}
我把剩下的作为练习留给读者。
答案 2 :(得分:0)
代码:
#include<stdio.h>
int main()
{
int i,num;
int t1,t2; // Variable to store data temporary
printf("\nEnter the number : \n");
scanf("%d",&num);
for(i=0;i<num;i++)
{
t1= i/10;
t2= i%10;
if((t1==3) || (t2 ==3)) //check if number has 3 in it
printf(" %d", i);
}
return 0;
}
这是必需的代码。感谢@amulous指出错误。 注意:根据提出问题的用户的要求,假设输入的数字小于100.
答案 3 :(得分:0)
你可以更有效地写这个,这适用于任何上限:
#include <stdio.h>
int main(int argc, const char * argv [])
{
int wholenumber;
printf("百以内の整数を入力してください\n");
scanf("%d", &wholenumber);
for (int tens = 1; tens < wholenumber; tens *= 10) {
for (int i = 3 * tens; i < wholenumber; i+= 10*tens) {
printf("%3d\n", i);
}
}
return 0;
}
答案 4 :(得分:0)
#include <stdio.h>
int contain3(int n){
if(n == 0) return 0;
return (n % 10 == 3) ? 1 : contain3(n/10);
}
int main(void){
int i, wholenumber;
printf("百以内の整数を入力してください\n");
scanf_s("%d", &wholenumber);
for(i=3;i<wholenumber;++i)
if(contain3(i))
printf("%3d", i);
return 0;
}
#include <stdio.h>
#include <limits.h>
int main(void){
int i, wholenumber;
int data[]={3,13,23,30,31,32,33,34,35,36,37,38,39,43,53,63,73,83,93,INT_MAX};
printf("百以内の整数を入力してください\n");
scanf_s("%d", &wholenumber);
for(i=0;data[i]<wholenumber;++i)
printf("%3d", data[i]);
return 0;
}
答案 5 :(得分:0)
while()
循环测试会破坏wholenumber
。 “3”遏制的测试应使用wholenumber
wholenumber = 3 /10;
的语法应为wholenumber_test / = 10;
其他语法错误。
void whole(int wholenumber, int digit) {
while (0 < wholenumber) {
int test = wholenumber; // form test value
while (0 < test) {
if ((test%10) == digit) {
printf("%3d\n", wholenumber);
break; // no need to test other digits
}
test /= 10; // move onto next digit
}
wholenumber--;
}
}