#include <stdioh>
int main()
{
int start, end, i = 0, a, b, c, size = 0;
while (scanf("%d %d", &start, &end) == 2)
{
for (i = start; i <= end; i++)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
//total = pow(c, 3) + pow(a, 3) + pow(b, 3);
if ((aaa + bbb + ccc) == i) //满足水仙花条件
{
if (size == 0) //size=0输出第一个水仙花数
{
printf("%d", i);
}
else //size++输出第二。。第n个水仙花数
{
printf(" %d", i);
}
size++; //个数++;
}
}
if (size == 0) //范围内个数为0,则说明没有满足条件的
{
printf("no");
}
printf("\n");
}
return 0;
}
扩展资料:
需要注意的地方:
1将n整除以100,得出n在百位上的数字hun。
2将(n-i100)整除以10(或将n先整除以10再对10求模n/10%10),得出n在十位上的数字ten。
3将n对10取余,得出n在个位上的数字ind。
4求得这三个数字的立方和是否与其本身相等,若相等,则该数为水仙花数。
参考资料:
百度百科-水仙花数
87得到如下代码:
# include <stdioh># define SIZE 10
void del(char s, int v)
{
int i, nn = 0;
for (i = 0; s[i] != '\0'; ++i){
if (v != s[i]){
s[nn++] = s[i];
}
}
s[nn] = '\0';
}
int main ()
{
char str[1024], ch;
gets(str);
fflush(stdin);
printf ("输入要删除的元素:");
ch = getchar();
del(str, ch);
puts(str);
return 0 ;
}
88得到如下代码,在指定位置增加一个元素
# include <stdioh># define SIZE 10
void insIn(char s, char v, int pos)
{
int len = 0, i;
while (s[len] != '\0')len++;
if (pos < 0 || pos > len){
printf ("错误位置");
return ;
}
if (pos == len){
s[len] = v;
}
for (i = len-1; i >= pos; --i){
s[i+1] = s[i];
}
s[pos] = v;
s[len+1] = '\0';
}
int main ()
{
char str[1024], ch;
int pos;
gets(str);
fflush(stdin);
printf ("输入要插入的元素及位置(位置从0开始):");
scanf ("%c%d", &ch, &pos);
insIn(str, ch, pos);
puts(str);
return 0 ;
}
学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下:
钱:星期一、星期六
赵:星期二、星期四
孙:星期三、星期日
李:星期五
周:星期一、星期四、星期六
吴:星期二、星期五
陈:星期三、星期六、星期日
运行结果:
Solution: 1 赵 钱 孙 李 周 吴 陈 =============================================================
星期四 星期一 星期三 星期五 星期六 星期二 星期日
Solution: 2 赵 钱 孙 李 周 吴 陈 =============================================================
星期四 星期一 星期日 星期五 星期六 星期二 星期三
Solution: 3 赵 钱 孙 李 周 吴 陈 =============================================================
星期四 星期六 星期三 星期五 星期一 星期二 星期日
Solution: 4 赵 钱 孙 李 周 吴 陈 =============================================================
星期四 星期六 星期日 星期五 星期一 星期二 星期三
#include <stdioh>
int n = 0;
int rest[7][7];
void swap(int a, int b)
{
int m;
m = a;
a = b;
b = m;
}
void perm(int list[], int k, int m)
{
int i;
int j;
if(k > m)
{
for (i=0; i<7; i++)
{
for (j=0; j<7; j++)
{
if (rest[i][j] == -1)
return;
if (rest[i][j] != list[i])
continue;
if (rest[i][j] == list[i])
break;
}
}
n++;
printf("Solution: %d\n", n);
printf("赵 钱 孙 李 周 吴 陈\n");
printf("=============================================================\n");
for(i = 0; i <= m; i++)
{
switch (list[i])
{
case 1: printf("星期一 ");
break;
case 2: printf("星期二 ");
break;
case 3: printf("星期三 ");
break;
case 4: printf("星期四 ");
break;
case 5: printf("星期五 ");
break;
case 6: printf("星期六 ");
break;
case 7: printf("星期日 ");
break;
default:
break;
}
}
printf("\n\n\n");
}
else
{
for(i = k; i <= m; i++)
{
swap(&list[k], &list[i]);
perm(list, k + 1, m);
swap(&list[k], &list[i]);
}
}
}
int main()
{
int list[] = {1, 2, 3, 4, 5, 6, 7};
int i, j;
for(i = 0; i < 7; i++)
{
printf("Enter the day of %d people rests:\n", i+1);
for(j = 0; j < 7; j++)
{
scanf("%d", &rest[i][j]);
if(rest[i][j] == -1)
break;
}
}
printf("\n\n\n");
perm(list, 0, 6);
printf("total:%d\n", n);
getchar();
getchar();
return 0;
}
学校实验楼有7名保安人员:。钱,赵,孙,李,周,吴,陈由于工作需要进行轮休制度,一星期中每人休息一天预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案当然使每个人都满意,例如每人选择的休息日如下:
钱:星期一,星期六
赵:星期二,星期四
孙:星期三,星期日
李:星期五
周:星期一,星期四,星期六
吴:星期二,星期五
陈:星期三,星期六,星期日
运行结果:
解决方案:1赵钱孙李周吴陈================================== =====================
星期四星期一星期三星期五星期六星期二星期日
解决方案:2赵钱孙李周吴陈================================== =====================
星期四星期一星期二星期五
解决方案:3赵钱孙李周吴陈================================== =====================
星期四星期六星期三星期五星期一星期二星期日
解决方案:4赵钱孙李周吴陈================================== =====================
星期四星期六星期二星期五星期一星期二星期三
#include <stdioh>
int n = 0;
休息[7] [7];
void swap(int a,int b)
{
int m
m = a;
a = b;
b = m;
}
void perm(int list [],int k,int m)
{
int i
int j
如果(k> m)
{
for(i = 0; i <7; i ++)
{
for(j = 0; j <7; j ++)
{
if(rest [i] [j] == -1)
返回;
if(rest [i] [j]!= list [i])
继续;
if(rest [i] [j] == list [i])
打破;
}
}
的n ++;
printf(“解决方案:%d \ n”,n);
printf(“赵钱孙李周吴陈\ n”);
的printf(“=============================================== ============== \ n“);
for(i = 0; i <= m; i ++)
{
switch(list [i])
{
案例1:printf(“星期一”);
打破;
情况2:printf(“星期二”);
打破;
案例3:printf(“星期三”);
打破;
情况4:printf(“星期四”);
打破;
情况5:printf(“星期五”);
打破;
情况6:printf(“星期六”);
打破;
案例7:printf(“星期日”);
打破;
默认:
打破;
}
}
的printf( “\ n \ n \ n”);
}
其他
{
for(i = k; i <= m; i ++)
{
交换(&list [k],&list [i]);
perm(list,k + 1,m);
交换(&list [k],&list [i]);
}
}
}
int main()
{
int list [] = {1,2,3,4,5,6,7};
int i,j;
for(i = 0; i <7; i ++)
{
printf(“输入%d人的日子休息:\ n”,i + 1);
for(j = 0; j <7; j ++)
{
scanf(“%d”,&rest [i] [j]);
if(rest [i] [j] == -1)
打破;
}
}
的printf( “\ n \ n \ n”);
perm(list,0,6);
printf(“total:%d \ n”,n);
的getchar();
的getchar();
返回0;
}
以上就是关于c语言水仙花数全部的内容,包括:c语言水仙花数、C语言设计案例张传学P110编写函数山一个元素、c语言程序翻译,急等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)