
求高手帮忙把C++代码中的cin cout改成scanf printf谢谢~ #include <iostream> using namespace std; /* 计
#include<iostream>usingnamespacestd;/*计算f[n]%m(这个程序将递归函数写成非递归的形式)*/intmain(){intm=0,n...
#include <iostream>
using namespace std;
/* 计算 f [ n ] % m ( 这个程序将递归函数写成非递归的形式 ) */
int main() {
int m = 0, n = 0, i = 4, f [ 10001 ] = {0}; //定义变量
while ( cin >> n >> m ) //开始循环,当输入 m, n 时
{
if( m == 0 && n == 0 )
break; //如果 m = 0, n = 0, 跳出程序
else if( n < 0 )
cout << (n % m + m) % m << endl; //n < 0的情况
else if( n <= 10000 && 2 <= m <= 10000 )
{
f [ 1 ] = 1, f [ 2 ] = 2, f [ 3 ] = 3;
for( i = 4; i <= n; i ++ )
{
f [ i ] = f [ i - 1 ] + f [ i - 3 ];
if ( f [ i ] >= m )
f [ i ] = f [ i ] % m;
}
cout << f [ n ] % m << endl; //m,n满足条件时,计算 f [ n ] % m的值
}
else
cout << "Invalid input!" << endl; //错误处理
}
return 0;
} 展开
using namespace std;
/* 计算 f [ n ] % m ( 这个程序将递归函数写成非递归的形式 ) */
int main() {
int m = 0, n = 0, i = 4, f [ 10001 ] = {0}; //定义变量
while ( cin >> n >> m ) //开始循环,当输入 m, n 时
{
if( m == 0 && n == 0 )
break; //如果 m = 0, n = 0, 跳出程序
else if( n < 0 )
cout << (n % m + m) % m << endl; //n < 0的情况
else if( n <= 10000 && 2 <= m <= 10000 )
{
f [ 1 ] = 1, f [ 2 ] = 2, f [ 3 ] = 3;
for( i = 4; i <= n; i ++ )
{
f [ i ] = f [ i - 1 ] + f [ i - 3 ];
if ( f [ i ] >= m )
f [ i ] = f [ i ] % m;
}
cout << f [ n ] % m << endl; //m,n满足条件时,计算 f [ n ] % m的值
}
else
cout << "Invalid input!" << endl; //错误处理
}
return 0;
} 展开
3个回答
展开全部
按你的要求只改了输入输出语句,其他的请自行解决。
#include <stdio.h>
/* 计算 f [ n ] % m ( 这个程序将递归函数写成非递归的形式 ) */
int main() {
int m = 0, n = 0, i = 4, f [ 10001 ] = {0}; //定义变量
while (scanf("%d %d",&n,&m) == 2 ) //开始循环,当输入 m, n 时
{
if( m == 0 && n == 0 )
break; //如果 m = 0, n = 0, 跳出程序
else if( n < 0 )
// cout << (n % m + m) % m << endl; //n < 0的情况
printf("%d\n",(n % m + m) % m);
else if( n <= 10000 && 2 <= m <= 10000 )
{
f [ 1 ] = 1, f [ 2 ] = 2, f [ 3 ] = 3;
for( i = 4; i <= n; i ++ )
{
f [ i ] = f [ i - 1 ] + f [ i - 3 ];
if ( f [ i ] >= m )
f [ i ] = f [ i ] % m;
}
// cout << f [ n ] % m << endl; //m,n满足条件时,计算 f [ n ] % m的值
printf("%d\n",f [ n ] % m);
}
else
// cout << "Invalid input!" << endl; //错误处理
printf("Invalid input!\n");
}
return 0;
}
#include <stdio.h>
/* 计算 f [ n ] % m ( 这个程序将递归函数写成非递归的形式 ) */
int main() {
int m = 0, n = 0, i = 4, f [ 10001 ] = {0}; //定义变量
while (scanf("%d %d",&n,&m) == 2 ) //开始循环,当输入 m, n 时
{
if( m == 0 && n == 0 )
break; //如果 m = 0, n = 0, 跳出程序
else if( n < 0 )
// cout << (n % m + m) % m << endl; //n < 0的情况
printf("%d\n",(n % m + m) % m);
else if( n <= 10000 && 2 <= m <= 10000 )
{
f [ 1 ] = 1, f [ 2 ] = 2, f [ 3 ] = 3;
for( i = 4; i <= n; i ++ )
{
f [ i ] = f [ i - 1 ] + f [ i - 3 ];
if ( f [ i ] >= m )
f [ i ] = f [ i ] % m;
}
// cout << f [ n ] % m << endl; //m,n满足条件时,计算 f [ n ] % m的值
printf("%d\n",f [ n ] % m);
}
else
// cout << "Invalid input!" << endl; //错误处理
printf("Invalid input!\n");
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我没看你程序是否有错 直接改了
#include <stdio.h>
/* 计算 f [ n ] % m ( 这个程序将递归函数写成非递归的形式 ) */
int main() {
int m = 0, n = 0, i = 4,c,a, f [ 10001 ] = {0};//定义变量
a=(n % m + m) % m;
while ( scanf("%d,%d",&m,&n) ) //开始循环,当输入 m, n 时
{
if( m == 0 && n == 0 )
break; //如果 m = 0, n = 0, 跳出程序
else if( n < 0 )
printf("%d",a); //n < 0的情况
else if( n <= 10000 && 2 <= m <= 10000 )
{
f [ 1 ] = 1, f [ 2 ] = 2, f [ 3 ] = 3;
for( i = 4; i <= n; i ++ )
{
f [ i ] = f [ i - 1 ] + f [ i - 3 ];
if ( f [ i ] >= m )
f [ i ] = f [ i ] % m;
}
c=f[n]%m;
printf("%d",c); //m,n满足条件时,计算 f [ 2n ] % m的值
}
else
printf( "Invalid input!" ); //错误处理
}
return 0;
}
#include <stdio.h>
/* 计算 f [ n ] % m ( 这个程序将递归函数写成非递归的形式 ) */
int main() {
int m = 0, n = 0, i = 4,c,a, f [ 10001 ] = {0};//定义变量
a=(n % m + m) % m;
while ( scanf("%d,%d",&m,&n) ) //开始循环,当输入 m, n 时
{
if( m == 0 && n == 0 )
break; //如果 m = 0, n = 0, 跳出程序
else if( n < 0 )
printf("%d",a); //n < 0的情况
else if( n <= 10000 && 2 <= m <= 10000 )
{
f [ 1 ] = 1, f [ 2 ] = 2, f [ 3 ] = 3;
for( i = 4; i <= n; i ++ )
{
f [ i ] = f [ i - 1 ] + f [ i - 3 ];
if ( f [ i ] >= m )
f [ i ] = f [ i ] % m;
}
c=f[n]%m;
printf("%d",c); //m,n满足条件时,计算 f [ 2n ] % m的值
}
else
printf( "Invalid input!" ); //错误处理
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
/* 计算 f [ n ] % m ( 这个程序将递归函数写成非递归的形式 ) */
int main() {
int m = 0, n = 0, i = 4, f [ 10001 ] = {0}; //定义变量
scanf("%d %d",&n,&m);
while ( m&&n ) //开始循环,当输入 m, n 时
{
if( m == 0 && n == 0 )
break; //如果 m = 0, n = 0, 跳出程序
else if( n < 0 )
printf("%d\n",(n % m + m) % m); //n < 0的情况
else if( n <= 10000 && 2 <= m <= 10000 )
{
f [ 1 ] = 1, f [ 2 ] = 2, f [ 3 ] = 3;
for( i = 4; i <= n; i ++ )
{
f [ i ] = f [ i - 1 ] + f [ i - 3 ];
if ( f [ i ] >= m )
f [ i ] = f [ i ] % m;
}
printf("%d\n",f [ n ] % m ); //m,n满足条件时,计算 f [ n ] % m的值
}
else
printf( "Invalid input!\n"); //错误处理
}
return 0;
}
/* 计算 f [ n ] % m ( 这个程序将递归函数写成非递归的形式 ) */
int main() {
int m = 0, n = 0, i = 4, f [ 10001 ] = {0}; //定义变量
scanf("%d %d",&n,&m);
while ( m&&n ) //开始循环,当输入 m, n 时
{
if( m == 0 && n == 0 )
break; //如果 m = 0, n = 0, 跳出程序
else if( n < 0 )
printf("%d\n",(n % m + m) % m); //n < 0的情况
else if( n <= 10000 && 2 <= m <= 10000 )
{
f [ 1 ] = 1, f [ 2 ] = 2, f [ 3 ] = 3;
for( i = 4; i <= n; i ++ )
{
f [ i ] = f [ i - 1 ] + f [ i - 3 ];
if ( f [ i ] >= m )
f [ i ] = f [ i ] % m;
}
printf("%d\n",f [ n ] % m ); //m,n满足条件时,计算 f [ n ] % m的值
}
else
printf( "Invalid input!\n"); //错误处理
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询